php文件查找程序,输入一个路径确定后会遍历目录下所有的文件和文件夹,通过递归可以找到文件夹下面的每一个文件,再通过文件名和输入的关键字匹配,则可以查找到你想要的文件,对于本地,我们可以利用windows自带的查找去进行查找,但是对于线上的话,如查找ftp空间里面文件,本程序是很有用的.
php文件查找器源码,代码如下:
-
<html>
-
<head>
-
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-
<title>php版文件查找(file search)</title>
-
</head>
-
<body>
-
<form action="" method="post">
-
<p> 文件查找(注:区分大小写)</p>
-
<p>路径:<input type="text" name="path" /></p>
-
<p>查找:<input type="text" name="key" /></p>
-
<p><input type="submit" name="sub" value=" 开 始 " /></p>
-
</form>
-
</body>
-
</html>
-
<?php
-
-
-
-
if(!emptyempty($_POST['path'])&&!emptyempty($_POST['key'])){
-
echo "在路径 ".$_POST['path']."/ 中查找 ".$_POST['key']." 的结果为:<hr/>";
-
$file_num = $dir_num = 0;
-
$r_file_num = $r_dir_num= 0;
-
$findFile = $_POST['key'];
-
function delDirAndFile( $dirName ){
-
if ( $handle = @opendir( "$dirName" ) ) {
-
while ( false !== ( $item = readdir( $handle ) ) ) {
-
if ( $item != "." && $item != ".." ) {
-
if ( is_dir( "$dirName/$item" ) ) {
-
delDirAndFile( "$dirName/$item" );
-
} else {
-
$GLOBALS['file_num']++;
-
if(strstr($item,$GLOBALS['findFile'])){
-
echo " <span><b> $dirName/$item </b></span><br />n";
-
$GLOBALS['r_file_num']++;
-
}
-
}
-
}
-
}
-
closedir( $handle );
-
$GLOBALS['dir_num']++;
-
if(strstr($dirName,$GLOBALS['findFile'])){
-
$loop = explode($GLOBALS['findFile'],$dirName);
-
$countArr = count($loop)-1;
-
if(emptyempty($loop[$countArr])){
-
echo " <span style='color:#297C79;'><b> $dirName </b></span><br />n";
-
$GLOBALS['r_dir_num']++;
-
}
-
}
-
}else{
-
die("没有此路径!");
-
}
-
}
-
-
delDirAndFile($_POST['path']);
-
echo "<hr/>本次共搜索到".$file_num."个文件,文件夹".$dir_num."个<br/>";
-
echo "<hr/>符合结果的共".$r_file_num."个文件,文件夹".$r_dir_num."个<br/>";
-
}
-
?>
上面只是查找文件,下面看一个查找文件中的字符是否包括我们要找的东西,自己写的一个批量查找文件内容的php程序,我是拿来扫描文件特征码的,现在我贴出代码,供大家参考,代码如下:
-
<?php
-
if ($_POST ['Submit'] == '开始') {
-
$total = 0;
-
$dangerous = array ();
-
$dangerous_content = $_POST ["sstr"];
-
$find_path = $_POST ["searchpath"];
-
$shortname = $_POST ["shortname"];
-
echo "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>";
-
echo "<html>";
-
echo "<head>";
-
echo "<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />";
-
echo "</head>";
-
echo "<body>";
-
$begin_time=date("U");
-
-
visitFile ( $find_path, $shortname );
-
$end_time=date("U");
-
foreach ($dangerous as $d){
-
echo $d."<br/>";
-
}
-
echo "查找文件总数:" . $total." 危险文件:".count($dangerous)." 总用时".($end_time-$begin_time)."秒";
-
echo "</body>";
-
echo "</html>";
-
-
-
-
-
-
exit();
-
}
-
function visitFile($path, $ext) {
-
global $total;
-
global $dangerous_content;
-
$fdir = dir ( $path );
-
-
-
set_time_limit ( 24 * 60 * 60 );
-
-
while ( ($entry = $fdir->read ()) !== false ) {
-
$pathSub = $path . "\" . $entry;
-
if ($entry != '.' && $entry != '..') {
-
if (is_dir ( $pathSub )) {
-
visitFile ( $pathSub, $ext );
-
} else {
-
$exten = explode ( '.', $entry );
-
$exten = array_reverse ( $exten );
-
-
$shortnames = explode ( '|', $ext );
-
foreach ( $shortnames as $sn ) {
-
if (! emptyempty ( $exten ) && $sn == $exten [0]) {
-
$total = $total + 1;
-
-
$content = file_get_contents ( $path . "/" . $entry );
-
$content = strtolower ( $content );
-
$dangerous_content = strtolower ( $dangerous_content );
-
isExists ( $dangerous_content, $path . "/" . $entry, $content );
-
}
-
}
-
-
}
-
}
-
}
-
$fdir->close ();
-
}
-
function isExists($str, $filename, $content) {
-
global $dangerous;
-
-
set_time_limit ( 10 );
-
$arr = explode ( ',', $str );
-
$signature="特征码:";
-
if (! emptyempty ( $arr )) {
-
-
$content = strtolower ( $content );
-
$error_count = 0;
-
foreach ( $arr as $a ) {
-
if (trim ( $a ) != "") {
-
if (strpos ( $content, $a )) {
-
$error_count = $error_count + 1;
-
$signature.=$a." ";
-
}
-
}
-
}
-
if ($error_count > 0) {
-
-
$dangerous [] = "[error] " . $error_count . " " .$signature." " . $filename;
-
-
}else{
-
-
}
-
}
-
}
-
?>
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
<html xmlns="http://www.w3.org/1999/xhtml">
-
<head>
-
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-
<title>批量查询文件</title>
-
<style type="text/css">
-
body {
-
background: #FFFFFF;
-
color: #000;
-
font-size: 12px;
-
}
-
-
#top {
-
text-align: center;
-
}
-
-
h1,p,form {
-
margin: 0;
-
padding: 0;
-
}
-
-
h1 {font-size; 14px;
-
-
}
-
</style>
-
</head>
-
<body>
-
<div id="top">
-
<h1>批量查找程序</h1>
-
<div>本程序可以扫描指定目录的所有文件,进行<strong>内容查找</strong>。<br />
-
在文件数量非常多的情况下,本操作比较占用服务器资源,请确脚本超时限制时间允许更改,否则可能无法完成操作。</div>
-
</div>
-
-
-
<form action="<?=$_SERVER ['SCRIPT_NAME']?>" name="form1"
-
target="stafrm" method="post">
-
<table width="95%" border="0" align="center" cellpadding="3"
-
cellspacing="1" bgcolor="#666666">
-
<tr>
-
<td width="10%" bgcolor="#FFFFFF"><strong> 起始根路径:</strong></td>
-
<td width="90%" bgcolor="#FFFFFF"><input name="searchpath" type="text"
-
id="searchpath" value="D:/" size="20" /> 点表示当前目录,末尾不要加/ </td>
-
</tr>
-
<tr>
-
<td bgcolor="#FFFFFF"><strong> 文件扩展名:</strong></td>
-
<td bgcolor="#FFFFFF"><input name="shortname" type="text"
-
id="shortname" size="20" value="htm|html|shtml|php" /> 多个请用|隔开</td>
-
</tr>
-
<tr id="rpct">
-
<td height="64" colspan="2" bgcolor="#FFFFFF">
-
<table width="100%" border="0" cellspacing="1" cellpadding="1">
-
<tr bgcolor="#EDFCE2">
-
<td colspan="4"><strong>内容查找选项:</strong> <input type="checkbox"
-
name="isreg" value="1" />使用正则表达式</td>
-
</tr>
-
<tr>
-
<td colspan="4">查找内容类默认使用字符串查找,也可以使用正则表达式(需勾选)。"查找为"不填写的话,就表示删除"查找内容"。
-
<br />com,system,exec,eval,escapeshell,cmd,passthru,base64_decode,gzuncompress
-
</td>
-
</tr>
-
<tr>
-
<td width="10%"> 查找内容:</td>
-
<td width="36%" colspan="3"><textarea name="sstr" id="sstr"
-
style="width: 90%; height: 45px">小亮,Root_GP,Root_CSS,c99sh_updateurl,c99sh_sourcesurl,640684770,hx_dealdir,while(1)</textarea></td>
-
</tr>
-
</table>
-
</td>
-
</tr>
-
<tr>
-
<td colspan="2" height="20" align="center" bgcolor="#E2F5BC"><input
-
type="submit" name="Submit" value="开始" class="inputbut" /></td>
-
</tr>
-
</table>
-
</form>
-
<table width="95%" border="0" align="center" cellpadding="3"
-
cellspacing="1" bgcolor="#666666">
-
<tr bgcolor="#FFFFFF">
-
<td id="mtd">
-
<div id='mdv' style='width: 100%; height: 100;'><iframe name="stafrm"
-
frameborder="0" id="stafrm" width="100%" height="100%"></iframe></div>
-
<script type="text/javascript">
-
document.all.mdv.style.pixelHeight = screen.height - 450;
-
</script></td>
-
</tr>
-
</table>
-
</body>
-
</html>
-
(责任编辑:最模板) |