Как удалить файлы созданные скриптом?

Тема в разделе "PHP", создана пользователем IduKuru, 17 апр 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. IduKuru

    IduKuru

    Регистр.:
    20 янв 2008
    Сообщения:
    150
    Симпатии:
    20
    не могу удалить файлы и папки которые наделал скрипт php ни с ftp ни с панели пишет нет прав
     
  2. prokopa

    prokopa

    Регистр.:
    27 июн 2007
    Сообщения:
    402
    Симпатии:
    105
    PHP:
    <?php
     
    function delete_R($path) { 
      
    $handle opendir($path);
       while ( 
    false !== ($file readdir($handle)) ) {
         if ( (
    $file !== ".") && ($file !== "..") ) {
           if ( 
    is_file($path."/".$file) ) {
             
    unlink($path "/" $file);
           }
           else {
             
    delete_R($path "/" $file);
             
    unlink($path "/" $file);
           }
         }
       }
       
    closedir($handle);
     }
     
     
    $path $_SERVER["QUERY_STRING"];

     if ( 
    $path{0} != "/" ) {
        
    $path $_SERVER["DOCUMENT_ROOT"] . "/" $path;
     }

     
    delete_R($path);
    ?>
    Разместите этот файл на площадке, в директории, доступной веб-серверу, например, как
    domain.tld/www/delete.php
    где domain.tld/www — корневая директория (DocumentRoot) вашего сайта на сервере.

    Вызывать скрипт нужно так:
    http://domain.tld/delete.php?путь_к_нужной_директории
    удаляет указаную папку с вложенными файлами и папками
     
    adainas и IduKuru нравится это.
  3. Yaggi Jah

    Yaggi Jah Постоялец

    Регистр.:
    15 ноя 2006
    Сообщения:
    75
    Симпатии:
    31
    PHP:
    <?php
    function delete_f($file,$del=1) {
        if(
    file_exists($file)) {
            if(
    is_dir($file)) {
                
    $handle=opendir($file); 
                while(
    false!==($file1=readdir($handle))) {
                    if(
    $file1!='.' && $file1!='..') {
                        
    delete_f($file.'/'.$file1,$del);
                    }
                }
                
    closedir($handle);
                if(
    $del==1) {
                    @
    chmod($file,0777);
                    
    rmdir($file);
                }
            }
            else {
                @
    chmod($file,0777);
                if(
    file_exists($file)) unlink($file);
            }
        }
        else return 
    false;
    }
    delete_f('dir',0);  //если вместо нолика поставить 1 удалит и директории
    ?>
     
  4. Alx2000y

    Alx2000y Писатель

    Регистр.:
    4 сен 2007
    Сообщения:
    4
    Симпатии:
    1
    Завести на сайте file manager

    Завести на сайте php версию файл менеджера, например этого
    http://www.webfilebrowser.org/

    но можно просто в поиск вбить "file browser php", их много разных.
     
    gls нравится это.
  5. muzshura

    muzshura Постоялец

    Регистр.:
    27 фев 2008
    Сообщения:
    74
    Симпатии:
    3
    На очень глючном сервер работает следующий код:

    PHP:
    function rmdirR($dir) { 
            @
    chmod($dir0777); 
            if ((
    $d=@opendir($dir))==false) return(1); 
            while ((
    $entry=@readdir($d))!==false) { 
                    if (
    $entry == "." || $entry == ".." || $entry == "") continue;
                    
    chmod($dir."/".$entry0777);                 
                    if (
    is_dir($dir."/".$entry)) rmdirR($dir."/".$entry); else unlink($dir."/".$entry);                 
            }; 
            
    closedir($d); 
            @
    rmdir($dir); 
            return(
    1); 
    }
    Применение:

    PHP:
    rmdirR("tmp_keys");
    Можно по-разному поступать, суть проблемы удаления часто решается переходом в нужную директорию:

    PHP:
    chdir(dirname(__FILE__).'/');
    сменой прав доступа:

    PHP:
    system("chmod 0777 index.htm");
     
Статус темы:
Закрыта.