——此文章摘自《完全手册PHP网络开发详解》定价
¥
特价
¥
详细>>
本节将介绍一个对文件夹下全部文本文件进行搜索的方法PHP程序通过对文件夹下全部文件的读取来检测文件是否包含搜索的内容具体代码如下所示
<?php
//获得关键词
$colname_rs = $_GET[key];
$result = explode($_GET[key]);
$file_result = array(); //初始化数组
$dir = files/; //定义路径
$dir_res = opendir($dir); //打开目录
while($filen=readdir($dir_res)) //循环读取目录中的文件
{
if($filen == || $filen == ) //将当前目录和父目录过滤掉
{
continue;
}
$file = fopen($dir$filen r); //打开文件
$filesize = filesize($dir$filen); //获取文件长度
$filecont = fread($file $filesize); //获取文件的全部内容
fclose($file); //关闭文件
//循环搜索文件
for($i=$j=;$i<count($result);$i++)
{
if($result[$i]!= && strstr($filecont $result[$i]))
//如果文件找到则将文件名保存到数组中
{
$file_result[$j] = $filen;
$j++;
}
}
}
closedir($dir_res); //关闭目录
?>
<html>
<head>
<title>Search</title>
<meta httpequiv=ContentType content=text/html; charset=gb>
</head>
<body>
<form name=form method=get action=?>
<div align=center>请输入要搜索的关键词
<input name=key type=text size= value=<?php echo $_GET[key] ?>>
<input type=submit value=Submit>
</div>
</form>
<p align=center><B>当前关键词
<?php
for($i=;$i<count($result);$i++) //获得所有的关键词
{
echo $result[$i] ;
}
?></B></p>
<p><hr></p>
<?php for($j=;$j<count($file_result);$j++) { ?>
<p>* <a href=<?php echo $dir$file_result[$j]; ?>><?php echo $file_result [$j]; ?></a></p>
<?php } ?>
</body>
</html>
运行结果如图所示
图 搜索文本文件