Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как быстро удалить каталог на сайте, который содержит 60 000 файлов?
 
 автор: antf   (06.03.2011 в 17:10)   письмо автору
 
 

Здравствуйте.
На сайте каталог содержит 60 000 файлов. Нужно его удалить, чтобы залить новый. Удалять обычным способом долго. Можно ли удалить быстро и как это сделать?

  Ответить  
 
 автор: cheops   (06.03.2011 в 17:13)   письмо автору
 
   для: antf   (06.03.2011 в 17:10)
 

SSH-доступ к серверу имеется?

>Удалять обычным способом долго.
А обычный способ, что в себя включает? Это рекурсивный PHP-скрипт или удаление через FTP?

  Ответить  
 
 автор: antf   (06.03.2011 в 17:21)   письмо автору
 
   для: 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:31)   письмо автору
 
   для: antf   (06.03.2011 в 17:21)
 

Интересно, почему php так быстро удаляет файлы?

  Ответить  
 
 автор: cheops   (06.03.2011 в 17:37)   письмо автору
 
   для: antf   (06.03.2011 в 17:31)
 

60 000 файлов удалить не долго, любой файловый менеджер бы справился с этой задачей еще быстрее. Долго по FTP по каждому файлу отправлять сообщение, что файл удален.

  Ответить  
 
 автор: psychomc   (07.03.2011 в 19:15)   письмо автору
 
   для: antf   (06.03.2011 в 17:31)
 

а винда/линукс разве долго?

  Ответить  
 
 автор: antf   (09.03.2011 в 12:31)   письмо автору
 
   для: psychomc   (07.03.2011 в 19:15)
 

Дело происходит на сервере, по фтп очень долго.

  Ответить  
 
 автор: Саня   (07.03.2011 в 13:46)   письмо автору
 
   для: antf   (06.03.2011 в 17:10)
 

Как-то в интернете нашел прекрасный кусок кода на SPL, обеспечивающий рекурсивную итерацию по директории:
<?
$di 
= new RecursiveDirectoryIterator($dir);
$iterator = new RecursiveIteratorIterator($diRecursiveIteratorIterator::CHILD_FIRST);
foreach ( 
$iterator as $f ) {
  if ( 
$f->isDir() ) {
    
rmdir($f->getPathname());
  } else {
    
unlink($f->getPathname());
  }
}

  Ответить  
 
 автор: Shorr Kan   (08.03.2011 в 14:51)   письмо автору
 
   для: Саня   (07.03.2011 в 13:46)
 

exec('rm -rf baddir >/dev/null &');

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования