这在这里简短地解决: 删除一个PHP文件中的开始和结束string,但我正在寻找相同的代码的解决scheme。 服务器上的每一个PHP文件的第一行都以<?PHP if(!isset($GLOBALS[并以-1; ?>结尾,中间是一长串代码,因文件而异)开头。
我试图想出一个脚本来从所有文件中删除此行。 我和上一篇文章中的人一样,跑到了同一堵墙里。
使用:
sed -e '1 s/^<?PHP if(!isset($GLOBALS[.*-1; ?>//' *.PHP
在UNIX环境中打印没有代码的PHP文件,但不保存它。 我错过了什么?
如何在Linux / var / www中设置权限以允许从PHP-Apache自动覆盖
与PDF和PHP的Apache2 errror
使用mod_headers和PHP-fpm / mod_fastcgi的问题
PHP编译器for windows
在XAMPP上安装PHP-intl
Nginx将所有来自子目录的请求redirect到另一个子目录
使用PHP执行unix shell命令
新的APCu APC用户caching是否在进程之间共享?
PHP单点login使用NTLMv2
我写了一个脚本来清除所有目录和子目录中的所有文件。 我建议你备份第一。 这是从壳内完成的
首先在你的主目录下创建一个名为fixmacro的文件, fixmacro在其中添加以下两行
:1/ua=strtolower/s/^.*<?PHP$/<?PHP/ :wq
从受感染文件所在的目录开始,或者您可以从主目录运行它,请运行以下命令。
find . -name *.PHP -exec vi -s ~/fixmacro {} ;
这将去每一个PHP的感染线看,并删除它们。 如果这些文件没有被感染文件,则重新保存该文件而不更改/
-i[SUFFIX],--in-place[=SUFFIX] edit files in place (makes backup if extension supplied)
[SUFFIX]部分是可选的,但一些sed实现要求您提供它。
在你的情况下,你可以试试这个:
sed -i.bak 's/^<?PHP if(!isset($GLOBALS[.*-1; ?>//' *.PHP
阅读man sed了解更多信息。
得到它的工作,感谢您使用-i的建议。 工作命令是: sed -i.bak 's/^<?PHP if(!isset($GLOBALS[.*-1; ?>//' *.PHP
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。