2013-10-08 2 views
2

Я новичок в PHPудалить специальную папку с именем в public_html

у меня есть загрузить все файлы и папки в public_html жить мой сайт, я не знаю, что было проблемой там в сервере, но PaxHeader имя папки автоматически создается во всех моих public_html, таких как css, js, admin, admin js в каждой папке есть папка с именем PaxHeader, поэтому я хочу сделать скрипт для удаления этой папки из всех public_html, но в основном я дизайнер. поэтому я знаю только несколько PHP-кода. любой bodody помочь мне для этого

моей структуры папок, как:

  -public_html 
       -PaxHeader 
       -js 
       -PaxHeader 
       -css 
       -PaxHeader 
       -admin 
       -PaxHeader 
       -js 
        -PaxHeader 
       -css 
        -PaxHeader 

эта структура просто пример, PaxHeader папка находится в каждой папке public_html и Эври PaxHeader папка имеет некоторые файлы, как я могу удалить, скрипт php?

+1

Могу ли я предложить ответ, используя POSIX-совместимые инструменты вместо php? Вы можете сделать это с помощью простого 'find. -type d -name 'PaxHeader' -delete', если вы используете UNIX-подобную систему. – kojiro

+0

где ввести 'find -type d -name 'PaxHeader' -delete' и как его использовать? –

+0

В каталоге 'public_html'. – kojiro

ответ

1

Я написал простой код PHP для вас.

$basepath = "/home/mohsen/Desktop/public_html/"; 
$dirNameToRemove = "PaxHeader"; 

function findAndRemove($path) 
{ 
    global $dirNameToRemove; 

    $items = scandir($path); 

    foreach($items as $item) 
    { 
     if(!is_dir($path . $item) || $item == '.' || $item == '..') 
      continue; 

     if($item == $dirNameToRemove) 
     { 
      #remove directory 
      rmdir($path . $item); 
     } 
     else 
     { 
      findAndRemove($path . $item . "/"); 
     } 
    } 
} 

findAndRemove($basepath); 

переменного $ BasePath является базовым путем к директории public_html переменного $ dirNameToRemove этого имя директории, которую вы хотите удалить рекурсивный.

Наслаждайтесь!

+0

Я только что добавил функцию для непустой папки 'function rm_rmdir ($ dir) { if (is_dir ($ dir)) { $ objects = scandir ($ dir); foreach ($ objects as $ object) { if ($ object! = "." && $ object! = "..") { if (filetype ($ dir. "/". $ Object) == "dir ") rmdir ($ dir."/". $ object); else unlink ($ dir. "/". $ object); } } reset ($ objects); rmdir ($ dir); } } ' –

+0

спасибо, что работает –

0

Вам нужно написать что-то вроде этого (непроверенные)

function deleteDir($dirPath) { 
    if (substr($dirPath, strlen($dirPath) - 1, 1) != '/') { 
     $dirPath .= '/'; 
    } 
    $files = glob($dirPath . '*', GLOB_MARK); 
    foreach ($files as $file) { 
     if (is_dir($file)) { 
      self::deleteDir($file); 
     } else { 
      unlink($file); 
     } 
    } 
    rmdir($dirPath); 
} 
    function removepaxdir($path) { 
    $dir=opendir($path); 
    while ($FileName=readdir($dir)) 
    { 
    if(is_dir($FileName)) 
    { 
    if($FileName=='PaxHeader') deleteDir($path.$FileName); 
    else removepaxdir($path.$FileName); 
    } 
    } 
}  

removepaxdir('.'); 
Смежные вопросы