php file del 方法,php怎么遍历文件删除指定字符

php遍历文件删除指定字符的实现方法:首先创建一个PHP示例文件;然后通过“function del($getstr){…}”方法删除指定目录下所有指定文件中指定字符串即可。

本文操作环境:windows7系统、PHP7.1版,DELL G3电脑

php实现遍历目录并删除指定文件中指定内容

这篇文章主要介绍了php实现遍历目录并删除指定文件中指定内容,本文实现的工具可以用来删除服务器上的一句话木马,需要的朋友可以参考下

现在正坐在安静的寝室里,寒假俨然已经离我而去了……今天发的是我寒假里搞的最后一次学习,之后的时间就一直在看海贼王了。

以前写过一个C语言的遍历目录+复制文件的程序,很长很复杂,现在用PHP一样可以实现遍历目录,而代码就短了不少。这个程序目的是遍历目录,找到所有指定文件名的文件,并删除其中指定的字符串。

代码如下:

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

$tmpfiledir = $_SERVER["DOCUMENT_ROOT"].'tmp.txt';

function del($getstr)

{

$isbak = true; //是否备份原文件,true为备份,false不备份

global $tmpfiledir;

$fr = fopen($tmpfiledir,"r") or die('未能打开临时文件');

while($row = fgets($fr))

{

if(empty($row)) break;

$row = trim($row);

$opp = fopen($row,"r") or die("未能打开$row");

$str = fread($opp,filesize($row)) or die("不能读$row");

$str = str_replace($getstr,"",$str);

fclose($opp);

if($isbak){

copy($row,$row.'.bak') or die("备份文件失败");

}

$ref = fopen($row,"w") or die("重新打开文件失败");

fwrite($ref,$str) or die("重新写入文件失败");

}

}

function traverse($path) {

global $name,$tmpfiledir;

$current_dir = opendir($path); //opendir()返回一个目录句柄,失败返回false

if($current_dir == false)

return false;

while(($file = readdir($current_dir)) !== false) { //readdir()返回打开目录句柄中的一个条目

$sub_dir = $path . DIRECTORY_SEPARATOR . $file; //构建子目录路径

if($file == '.' || $file == '..') {

continue;

} else if(is_dir($sub_dir)) { //如果是目录,进行递归

traverse($sub_dir);

} else { //如果是文件,再做比较

$fileinfo = pathinfo($sub_dir);

if($fileinfo['basename'] == $name)

{

$fopen = fopen($tmpfiledir,"a");

fwrite($fopen,$sub_dir."\r\n");

fclose($fopen);

}

}

}

return true;

}

if(isset($_POST["name"]) && isset($_POST["dir"]) && isset($_POST["str"]))

{

$name = $_POST["name"];

traverse($_POST["dir"]) or die("未能创建临时文件,请检查网站根目录是否可写");

del($_POST["str"]);

             echo "成功";

unlink($tmpfiledir);

}

else

{

echo "

输入相关信息

";

}

?>

输入目标文件夹:

输入目标文件名:

输入需要删除的字符串:

你们可以看到我写了两个函数,函数traverse将查找到的指定文件路径写在一个临时文件里,函数del删除这些文件里的指定字符串。其实我也觉得很鸡肋,直接在遍历的时候删除就可以了,根本不用生成什么临时文件。

其实我一开始是用C语言写好的遍历,因为C语言不好对文件操作所以才用php写删除的部分,所以一开始只写了一个del函数,后来干脆把遍历文件也用php写了(似乎比C简单的多),所以又写了一个函数traverse。大家只管看遍历的部分就成,也可以和我之前用C写的遍历的代码对比(我发了源代码的),看看有什么不同。

不过这个版本不支持通配符,所以文件名必须要指定。作用嘛(也是我写这个的理由),可以批量删除我们挂在服务器上的一句话木马。

【推荐学习:《PHP视频教程》】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/529965.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

event类型 php,深入解析PHP的Laravel框架中的event事件操作

有时候当我们单纯的看 Laravel 手册的时候会有一些疑惑,比如说系统服务下的授权和事件,这些功能服务的应用场景是什么,其实如果没有经历过一定的开发经验有这些疑惑是很正常的事情,但是当我们在工作中多加思考会发现有时候这些服务…

php 抽象类 静态方法吗,php中的抽象类和静态方法是什么

php中的抽象类是指:在class前加了abstract关键字且存在抽象方法的类,它不能被直接实例化;静态方法是指:被static关键字修饰的方法,静态方法用于操作静态属性。抽象类抽象类是指在 class 前加了 abstract 关键字且存在抽…

python目录结构生成库,使用CMake构建平台无关的目录结构

我试图为我的跨平台项目创建一个目录结构,但遇到了一些问题。我已经让CMake确定了放置库和可执行文件的适当位置,但这种结构仅适用于Windows。在我的结构如下所示:项目目录垃圾箱可执行文件图书馆图书馆Python增压模块python脚本这在Windows上…

centos 怎样下载php,centos下怎样安装软件

centos下安装软件的方法是:centos安装软件的命令1、rpm包的安装1.安装一个包# rpm -ivh2.升级一个包# rpm -Uvh3.移走一个包# rpm -e4.安装参数--force 即使覆盖属于其它包的文件也强迫安装--nodeps 如果该RPM包的安装依赖其它包,即使其它包没装&#xf…

php fpm 安装配置,php php+fpm安装配置

sudo apt - get install php5 - cgi php5 - mysql php5 - fpm php5 - curl php5 - gd php5 - idn php - pear php5 - imagick php5 - imap php5 - mcrypt php5 - mhash php5 - ming php5 - pspell php5 - recode php5 - snmp php5 - tidy php5 - xmlrpc php5 - xsl打开 /etc/ph…

php post 微信沙箱,微信支付平台错误:获取沙箱密钥失败,确保交易密钥是

按官方提示进行获取沙箱密钥的时候,久试不爽,总是提示错误 :“获取沙箱密钥失败,确保交易密钥是否正确”。这个纯粹是微信平台挖的坑呀,文档没有详细的进行一些讲解,也没有提示需要key,下面来说…

shell脚本执行oracle删除表,shell脚本操作oracle删除表空间、创建表空间、删除用户...

oracle下表空间的导出,用户的删除,表空间删除,用户新建,表空间新建,数据导入的shell使用非oracle用户执行该脚本参数说名$1:base表空间的用户名$2:同步表空间的用户名使用场景测试用&#xff0c…

PHP标题获取数据库内容,php – 如何从数据库获取项目的标题并将其发送到CodeIgniter中的标题模板...

尝试这个>型号更改>控制器已更改。在模型中function get_card($card){$query $this->db->query("SELECT * FROM table_name WHERE creditcards $card ");$result $query->result_array();$count count($result); # Newif(empty($count)){ # Newre…

php教程调用数据库,PHP数据库调用类调用实例,php数据库调用实例_PHP教程

PHP数据库调用类调用实例,php数据库调用实例config("dnsaaa;uidsa;pwdsa;dbnametest");//3.选择数据库$dbname $db->select_db("test");//4.设置允许调试$db->debug true;//5.执行一条不返回结果的SQL语句$db->execute("insert…

linux显示磁盘使用情况命令,Linux中监控磁盘分区和使用情况的几个工具

导读在文章中将讨论Linux中可用于监视磁盘使用情况的命令行实用程序,提供有关总大小容量、已用总量、文件系统信息和分区信息等。让我们看看这些工具如何帮助检索这些信息df命令df是一个Linux命令行实用程序,用于监视Linux磁盘使用情况。df命令显示文件系…

linux网络是文件吗,linux网络配置文件是什么意思

离开了么放得下我么回来了么还会爱我么新兵答主07-22TA获得超过2383个赞网卡的配置:1.网卡配置文件对于网卡信息的配置通常包括:配置IP地址、子网掩码和网关。网卡信息保存在网卡配置文件中。网卡配置文件位于/etc/sysconfig/network-scripts目录下。一块…

cd linux给u盘安装程序,使用U盘安装CDlinux

3、先把u盘插在电脑上与电脑连接,格式化成“FAT”文件系统,更改卷标为“CDLINUX”,之后再打开UltraISO工具进行写入:a、这里把你下载好的CDlinux文件打开。b、点击“写入硬盘映像”c、这里直接默认就好,点击“写入”4、…

linux7 telnet乱码,CentOS7安装配置telnet-server

1.安装xinetd和telnet-serveryum -y install telnet-server xinetd2.启服务(服务管理方式和CentOS6稍有区别)systemctl enable xinetd.serversystemctl enable telnet.socketsystemctl start telnet.socketsystemctl start xinetd.server注意:因为是由xinetd管理,这…

windows和linux存储float,C语言float型数据在内存中的储存方式

菜单导航/URHere/面包屑,通过CSS中的content简洁表达代码比如我们要写一个菜单导航/URHere/面包屑,如: 首页 > 个人中心 > 修改密码 代码: tolua杂记1 字符串调用luaFunc :DoString public class CallLuaFunction : MonoBehaviour { private…

Linux编译C没有文件名,crt1.o linux x64上没有这样的文件c编译错误

我正在linux平台上迈出第一步.我安装了Centos x64.我正在尝试构建一个包含几个函数和几个单元测试的小程序.我使用Netbeans 7.1.2作为开发环境.以下是构建过程的输出:CLEAN SUCCESSFUL (total time: 671ms)"/usr/bin/gmake" -f nbproject/Makefile-Debug.…

linux nmap下载教程,Linux_在Linux系统上用nmap扫描SSL漏洞的方法,以下载nmap 6.45及以上版本。如 - phpStudy...

在Linux系统上用nmap扫描SSL漏洞的方法以下载nmap 6.45及以上版本。如果懒的重新安装,可以直接下载ssl-heartbleed.nse 脚本。使用nmap 6.45扫描服务器心脏出血漏洞(heartbleed)的具体方法(步骤)如下:当然,你要先按好nmap,自己可以…

Linux的网络协议族是什么,Linux 网络协议的概述

网络层协议网络层协议主要包括 IP、ICMP(网络控制报文协议)、ARP(地址解析协议)IP协议该协议被设计成互联分组交换通信网,以形成一个网际通信环境。它负责在源主机和目的地主机之间传输来自其较高层软件的称为数据报文的数据块,它在源和目的地之间提供非…

linux百度文字识别,基于Linux平台的图片文字识别系统

摘要:图片文字识别OCR(Optical Character Recognition,光学字符识别)应用非常广泛。例如DNA序列图片识别;PDF文字识别;车牌号码自动识别;手机上的手写输入识别等。近年来该应用更加广泛,必然出现在教育领域的一款手机应用,将手机把试卷拍照查询答案,首先就是图片文字…

zenmap扫描出来linux,如何在Linux上使用NMAP安全扫描器

Nmap是一个免费的开源网络发现和安全审计实用程序,在Linux用户社区中被广泛使用,因为它使用起来非常强大。 Nmap通过在特定目标(通过IP)发送数据包,并通过解释传入的数据包来确定哪些帖子被打开/关闭,扫描系统上运行什么服务&…

linux上的中国象棋游戏下载,中国象棋下载_中国象棋最新下载_玩一玩游戏

中国象棋是起源于中国,的一种棋类游戏,属于两个人之间的对抗,在中国有着悠久的历史。由于它的器皿简单,趣味性强,它已经成为一种非常受欢迎的棋类活动。中国象棋是中华民族的文化瑰宝,历史悠久,…