функция rmdir не работает на сервере Linux

#php #linux #zend-framework

#php #linux #zend-framework

Вопрос:

 public function deleteAllEmailRelatedFolders($clientID) {


    $path = getcwd();
    //Delete Email Inbox Attachments
    $dir = $path . "cdndatainbox/$clientID";

    //Delete Email Sent Attachments
    $dir2 = $path . "cdndatasent/$clientID";

    var_dump($dir);
    var_dump($dir2);
    $this->rrmdir($dir);
    $this->rrmdir($dir2);
}

protected function rrmdir($dir) {
    if (is_dir($dir)) {
        $objects = scandir($dir);
        foreach ($objects as $object) {
            if ($object != "." amp;amp; $object != "..") {
                if (filetype($dir . "/" . $object) == "dir")
                    $this->rrmdir($dir . "/" . $object);
                else
                    unlink($dir . "/" . $object);
            }
        }
        reset($objects);
        rmdir($dir);
    }
}
 

Когда я пытаюсь запустить rmdir на моем linux.Это работает некорректно.когда я запускаю его, сервер WAMP на моем локальном хосте.Это работает отлично.Пожалуйста, помогите мне решить эту проблему

Комментарии:

1. Убедитесь, что путь указан правильно. $dir = $path . "cdndatainbox/$clientID"; . Я думаю, в Linux это должно быть что-то вроде $dir = $path . "/cdn/data/inbox/$clientID";

2. Да!! Дорогой, это работает!!!

3. Также проверьте, что ` ` должно быть записано ` \ `

4. рад, что он работает

Ответ №1:

Как указано shatheesh в комментарии, ваши пути неправильно отформатированы для Linux.

Измените ваши пути на:

 //Delete Email Inbox Attachments
$dir = $path . "/cdn/data/inbox/$clientID";

//Delete Email Sent Attachments
$dir2 = $path . "/cdn/data/sent/$clientID";
 

Более подробная информация о путях каталогов Linux и о том, что они делают, доступна по адресу http://www.tecmint.com/linux-directory-structure-and-important-files-paths-explained /