我需要从网站上复制内容以创建另一个系统,因为主题不断被黑客入侵。黑客不断放置一个.ico文件,该文件是恶意软件...
因此,我需要创建一个php文件,该文件将始终搜索未命名的文件favicon.ico并在找到它们后将其删除。
是否有一种快速的方法来搜索public_html中的每个目录以查找隐藏和命名为。*。ico的文件? 他们似乎从开始。 然后不同的名字 然后是.ico
所以总是:。*。ico
但未命名:favicon.ico 因此,只需一个代码即可使用public_html中的PHP删除所有名为.ico但未命名为favicon.ico
的文件。我认为取消链接会起作用,但是如何使其不删除favicon.ico?
有人知道吗? 我几乎完成了所有内容的复制操作,以创建一个不同的网站,然后删除整个网站并将域移至新服务器,因此它不再会被黑客攻击...但是它一直在被黑客攻击,因此我必须创建一个cron作业继续寻找要删除的.ico文件。
如果能为我指出正确的方向,请先感谢。 :)
我一直在网上搜索操作方法,但没有找到。需要快速获取它,因为它每隔几个小时就会遭到黑客入侵。
unlink("/home/path/public_html/*.ico");
//Deletes favicon.ico too... right?
没有测试它,因为我认为它将删除我不想删除的ico文件。
答案 0 :(得分:0)
unlink()
之类的函数需要一个确切的路径名,它们不会自动扩展通配符。
使用glob()
获取与模式匹配的文件列表,然后可以使用array_map()
来为每个文件调用函数。
array_map('unlink', glob("/home/path/public_html/*.ico"));
答案 1 :(得分:0)
我认为您需要一个递归脚本来执行工作...
您可以尝试以下操作:
function listFolderFiles($dir){
$ffs = scandir($dir);
unset($ffs[array_search('.', $ffs, true)]);
unset($ffs[array_search('..', $ffs, true)]);
$search_text = '.ico';
array_filter($ffs, function($el) use ($search_text) {
return ( strpos($el['text'], $search_text) !== false );
});
// prevent empty ordered elements
if (count($ffs) < 1)
return;
echo '<ol>';
foreach($ffs as $ff){
echo '<li>'.$ff;
if(is_dir($dir.'/'.$ff)) listFolderFiles($dir.'/'.$ff);
echo '</li>';
}
echo '</ol>';
}
listFolderFiles('Main Dir'); //your directory ...
检查输出是否是您需要的...并将取消链接添加到列出的路径和文件中...