PHP实现了目录的遍历,并在指定的文件中删除指定的内容。

PHP实现了目录的遍历,并在指定的文件中删除指定的内容。
现在,坐在安静的卧室里,寒假似乎已经结束了……今天是我寒假的最后一次学习,我一直在看一首歌。

过去我写了一个用C语言遍历目录和复制文件的程序,程序很长,很复杂。现在,PHP也可以用来遍历目录,而且代码要短得多。这个程序的目的是遍历目录,查找指定文件名的所有文件,并删除指定的字符串。

复制代码代码如下所示:

< PHP

/ /功能:删除指定目录(包括子目录)下的所有指定文件中指定的字符串

tmpfiledir美元美元_server { =document_root}。'tmp .txt;

函数del($ getstr)

{

isbak美元= true; / /如果原始文件备份,备份备份真实,虚假

全球tmpfiledir美元;

FR = fopen(tmpfiledir美元美元,R)或死亡('fail打开临时文件);

而($行= fgets($ FR))

{

如果(空($行))中断;

行=修剪($行);

$ OPP = fopen($行,R)或死亡(不开美元行);

$str = fread($ OPP,文件大小(合行))或死亡(无法读取$行);

$str = str_replace($ getstr,

Fclose($ OPP);

如果($ isbak){

复制($行,$行或或备份文件失败);

}

$ref = fopen(合排,W)或死亡(打开文件失败);

fwrite($ref,$str)或死亡(改写文件失败);

}

}
函数遍历($路径){

全球美元的名字,tmpfiledir美元;

current_dir美元= opendir($路径); / / opendir()返回一个目录句柄,失败返回假

如果($ current_dir = false)

返回false;

而(($文件= readdir($ current_dir))!= = false){ / / readdir(返回)在处理开放目录条目

sub_dir美元= $路径。directory_separator。$文件;构建子目录路径

如果(= = = = {文件| |'。文件..)

继续;

否则如果}(is_dir($ sub_dir)){ / /如果是递归目录

导线($ sub_dir);

否则,如果文档,进行比较

美元($ sub_dir)FileInfo =是;

如果($ FileInfo { 'basename} = $名)

{

$ fopen = fopen(tmpfiledir美元,);

fwrite($ fopen,sub_dir美元。r;

Fclose(合开);

}

}

}

返回true;

}
如果(isset($ _post {名字)(美元)时,_post {dir})时($ _post {STR)))))

{

$name$ _post { =名字};

导线($ _post {dir})或死亡(无法创建临时文件,检查该站点的根目录可写));

德尔($ _post {乙方));

成功;

unlink($ tmpfiledir);

}

其他的

{

输入相关信息;

}

>
输入目标文件夹:

输入目标文件名:

输入需要删除的字符串:

正如你所看到的,我写了两个函数。函数遍历写入临时文件中找到的指定文件路径。函数del删除这些文件中指定的字符串。事实上,我也觉得很多鸡肋,直接在遍历性的删除中可以,根本不必生成任何临时文件。

事实上,我开始用C语言编写的遍历,因为C语言是不是对文件操作的好,写在PHP删除的部分,所以只写一个删除功能开始,然后简单地遍历文件也写的PHP(似乎比C简单多了),所以就写了一一个函数遍历。你只要看看遍历,你能比我写的C代码遍历(我把源代码)看看有什么不同。

然而,这个版本不支持通配符,所以必须指定文件名的影响(为什么我写这个的原因)可以用来去除我们挂在服务器的木马。

tag:删除文件遍历并在实现了

相关内容