Я написал небольшой очищающий php-скрипт, который должен автоматически удалять список файлов на моем сервере. Список файлов - это простой txt-файл («3.txt»), содержащий одну запись файла в строке.Удалить список файлов, считанных с txt
Формат 3.txt:
folder/filename1.fileending
folder/filename2.fileending
folder/filename3.fileending
folder/filename4.fileending
По какой-то причине сценарий, кажется, читает список файлов должным образом, но только удается успешно удалить самый последний файл («папку/filename4.fileending»). Я предположил, что разрыв строки может испортить ситуацию и отфильтровать ее безрезультатно. Я также попытался использовать разрыв строки Unix, также безуспешно.
Очистка сценария:
<?php
$cleanlist = fopen("3.txt", "r") or die("Unable to open file list!");
while(!feof($cleanlist)) {
$temp = rtrim(fgets($cleanlist), "\r\n");
if(!file_exists($temp))
{
echo ("Error deleting "). $temp . "<br>";
}
else
{
unlink($temp);
echo ("Deleted ") . $temp . "<br>";
}
}
fclose($cleanlist);
?>
Я также попытался поставить «Разъединить ($ темп)» за заявление, если так, что она будет выполняться каждый раз, когда в случае, если есть винт в самом состоянии, но результат был таким же. Я нахожусь на своем пути. У кого-нибудь есть идея, почему мой скрипт не может успешно удалить любой файл, сохраненный для последнего в списке?
Обновление: теперь сценарий работал из синего! Я предполагаю, что мой хостинг-провайдер сыграл свою роль в этом ... или может и не быть. Тем не менее, спасибо всем, кто внес свой вклад. Это был мой самый первый php-скрипт, и благодаря вашим предложениям я много узнал о трассировке ошибок в php :)
Каков результат при запуске скрипта? У вас есть несколько «эхо», которые могли бы дать намек. – etalon11
Возможно, это конец строки, возможно, вместо trim '' \ r \ n "', попробуйте 'trim' с константой' PHP_EOL'. Попробуйте также обрезать, а не только rtrim. – Jessica
Я думаю, что 'file()' и 'foreach' будет намного проще использовать imho. – Devon