|||
研究PHP有一段时间,对基础知识有了一些了解之后,逐渐开始在做一些代码集成的工作以实现自己的想法,其中一个想法是采用PHP从TXT中随机读取一行文字,刷新一次就改变成别的行的文字。具体的应用如在个人的站点中实现名人名言的随机调用而不必依赖数据库。
代码如下:
<?PHP
/*
--------------------------------------------------------------------------------
* @文件/类名File/Class Name: PHP+TXT随机引文实现;
* @日期时间Date&Time: 2010-04-14 15:52:07;
* @作者名字Author: Siqin.Hou;
* @联系方式E_mail: siqin.hou@gmail.com;
* @版权归属信息Copyright: Siqin.Hou;
--------------------------------------------------------------------------------
*/
function RandomWisdomLine($txtFile,$Num) {
//我取名为随机智慧函数,功能:从一个文本文件中随机读取一定行数的文本。参数$txtFile,是您要打开的文本文件,参数$Num要随机显示的行数;
$file = fopen($txtFile,"r") or die("打开文件失败");//打开文件
$mydata=file($txtFile);//把整个文件读入到一个数组中,一行一个元素
/*@检验文件是否成功读取到数组
echo "<pre>";
print_r($mydata);
echo "</pre>";
*/
$DataNum=count($mydata); //计算数组一共有多少行,即文件有多少行
/*检验是否有输出行数
echo "共有记录:".$DataNum."条<br />";
*/
//获取随机行
for($i=0;$i<$Num;$i++) {
$num=mt_rand(0,$DataNum-1);
//$num=rand(0,$DataNum-1);
$final[$i]=$mydata[$num];
//shuffle($mydata);
//echo $final[$i]."<br />";
}
return $final;
//返回数组
//unset($mydata);释放$mydata数组
}
//使用实例,在与这个PHP文件同一路径下新建两个文本文件,分别为English.txt,Chinese.txt
$EnglishData=RandomWisdomLine('English.txt','5');//5行英文
$ChineseData=RandomWisdomLine('Chinese.txt','5');//5行中文
?>
<!--嵌入HTML代码-->
<dl>
<dt>English</dt>
<?PHP
for($i=0;$i<count($EnglishData);$i++) {
echo "<dd>".$EnglishData[$i]."</dd>";
}
?>
<dt>Chinese</dt>
<?PHP
for($i=0;$i<count($ChineseData);$i++) {
echo "<dd>".$ChineseData[$i]."</dd>";
}
?>
</dl>
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-22 23:12
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社