|
|
|
| Здравствуйте.
На сайте каталог содержит 60 000 файлов. Нужно его удалить, чтобы залить новый. Удалять обычным способом долго. Можно ли удалить быстро и как это сделать? | |
|
|
|
|
|
|
|
для: antf
(06.03.2011 в 17:10)
| | SSH-доступ к серверу имеется?
>Удалять обычным способом долго.
А обычный способ, что в себя включает? Это рекурсивный PHP-скрипт или удаление через FTP? | |
|
|
|
|
|
|
|
для: cheops
(06.03.2011 в 17:13)
| | >А обычный способ, что в себя включает? Это рекурсивный PHP-скрипт или удаление через FTP?
Удаление через ftp-клиент.
Написал такой скрипт, удалил, за 10 секунд:
<?php
$dr = opendir('content/catalog/');
while($file = readdir($dr))
{
if($file != '.' && $file != '..')
{
if(unlink("content/catalog/{$file}"))
print "Удален {$file}<br />";
else
print "<b>Проблема {$file}</b><br />";
}
}
?>
|
| |
|
|
|
|
|
|
|
для: antf
(06.03.2011 в 17:21)
| | Интересно, почему php так быстро удаляет файлы? | |
|
|
|
|
|
|
|
для: antf
(06.03.2011 в 17:31)
| | 60 000 файлов удалить не долго, любой файловый менеджер бы справился с этой задачей еще быстрее. Долго по FTP по каждому файлу отправлять сообщение, что файл удален. | |
|
|
|
|
|
|
|
для: antf
(06.03.2011 в 17:31)
| | а винда/линукс разве долго? | |
|
|
|
|
|
|
|
для: psychomc
(07.03.2011 в 19:15)
| | Дело происходит на сервере, по фтп очень долго. | |
|
|
|
|
|
|
|
для: antf
(06.03.2011 в 17:10)
| | Как-то в интернете нашел прекрасный кусок кода на SPL, обеспечивающий рекурсивную итерацию по директории:
<?
$di = new RecursiveDirectoryIterator($dir);
$iterator = new RecursiveIteratorIterator($di, RecursiveIteratorIterator::CHILD_FIRST);
foreach ( $iterator as $f ) {
if ( $f->isDir() ) {
rmdir($f->getPathname());
} else {
unlink($f->getPathname());
}
}
|
| |
|
|
|
|
|
|
|
для: Саня
(07.03.2011 в 13:46)
| | exec('rm -rf baddir >/dev/null &'); | |
|
|
|