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

Форум PHP

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

 

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

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

тема: Удаление файлов из папки и удаление папки
 
 автор: alesh@   (17.09.2009 в 23:06)   письмо автору
 
 

Делаю так:
$dir = $_SERVER['DOCUMENT_ROOT'].'/articles/articles/'.$id; // имя папки
$files = scandir($dir);
foreach ($files as $k => $f){
$f = $_SERVER['DOCUMENT_ROOT'].'/articles/articles/'.$f;
unlink($f);
}
rmdir($_SERVER['DOCUMENT_ROOT'].'/articles/articles/'.$id);

Выводит следующие ошибки:
Warning: unlink(C:/xampp/htdocs/articles/articles/.) [function.unlink]: Permission denied in C:\xampp\htdocs\articles\adminka_articles_do_it.php on line 48

Warning: unlink(C:/xampp/htdocs/articles/articles/..) [function.unlink]: Permission denied in C:\xampp\htdocs\articles\adminka_articles_do_it.php on line 48

Warning: unlink(C:/xampp/htdocs/articles/articles/1.gif) [function.unlink]: No such file or directory in C:\xampp\htdocs\articles\adminka_articles_do_it.php on line 48

Warning: unlink(C:/xampp/htdocs/articles/articles/7.php) [function.unlink]: No such file or directory in C:\xampp\htdocs\articles\adminka_articles_do_it.php on line 48

Warning: unlink(C:/xampp/htdocs/articles/articles/7.txt) [function.unlink]: No such file or directory in C:\xampp\htdocs\articles\adminka_articles_do_it.php on line 48

Warning: rmdir(C:/xampp/htdocs/articles/articles/7) [function.rmdir]: Directory not empty in C:\xampp\htdocs\articles\adminka_articles_do_it.php on line 50

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\articles\adminka_articles_do_it.php:48) in C:\xampp\htdocs\articles\adminka_articles_do_it.php on line 56

  Ответить  
 
 автор: cheops   (18.09.2009 в 08:40)   письмо автору
 
   для: alesh@   (17.09.2009 в 23:06)
 

У скрипта нет прав доступа на удаление файлов из директории C:/xampp/htdocs/articles/articles/

  Ответить  
 
 автор: alesh@   (18.09.2009 в 20:32)   письмо автору
 
   для: cheops   (18.09.2009 в 08:40)
 

Разве на локальном сервере XAMPP нужно прописывать права доступа? Или как их прописать для скрипта?

  Ответить  
 
 автор: Akdmeh   (18.09.2009 в 21:06)   письмо автору
 
   для: alesh@   (18.09.2009 в 20:32)
 

на папке, которую удаляешь должны быть права 666, или если слишком суеверен 777

  Ответить  
 
 автор: psychomc   (20.09.2009 в 01:11)   письмо автору
 
   для: alesh@   (18.09.2009 в 20:32)
 

по умолчанию не нужно

  Ответить  
 
 автор: cheops   (18.09.2009 в 21:46)   письмо автору
 
   для: alesh@   (17.09.2009 в 23:06)
 

Дело в том, что scandir() возвращает в том числе и текущий (точка .) и родительский каталог (две точки ..) - вы пытаетесь их удалить - нужно всегда проверять что перед вами каталог или файл (функции is_dir() и is_file()).

Кроме того, у вас файл C:/xampp/htdocs/articles/articles/1.gif существует? Скрипт сообщает, что нет.

  Ответить  
 
 автор: Commander   (19.09.2009 в 12:56)   письмо автору
 
   для: cheops   (18.09.2009 в 21:46)
 

Разве точка обозначает текущий каталог? Я всегда думал, что она обозначает корневой каталог.

  Ответить  
 
 автор: cheops   (19.09.2009 в 13:00)   письмо автору
 
   для: Commander   (19.09.2009 в 12:56)
 

Нет, точка - это текущий каталог, корень в UNIX обозначается /, а Windows буквой диска.

  Ответить  
 
 автор: Commander   (19.09.2009 в 13:07)   письмо автору
 
   для: cheops   (19.09.2009 в 13:00)
 

Все ясно. Понятно почему у меня пару лет назад функция поиска файлов папке в качестве результата вернула именно ту папку, в которой проводился поиск.

  Ответить  
 
 автор: Trianon   (20.09.2009 в 00:59)   письмо автору
 
   для: cheops   (19.09.2009 в 13:00)
 

>Нет, точка - это текущий каталог, корень в UNIX обозначается /, а Windows буквой диска.

В Windows корень точно также обозначается слэшем. Возможно, обратным. Но никакой не буквой. Пример - C:etc\hosts

  Ответить  
 
 автор: alesh@   (19.09.2009 в 22:50)   письмо автору
 
   для: cheops   (18.09.2009 в 21:46)
 

C:/xampp/htdocs/articles/articles/1.gif - конечно же не существует, я только сейчас заметил!
Должно быть: C:/xampp/htdocs/articles/articles/1/1.gif
Но не понятно почему папка с номером 1 не прописывается в пути.
Я вывел $dir с помощью echo, в переменной все впоряде, но после использования функции scandir(); и цикла foreach в переменной $f оказывается C:/xampp/htdocs/articles/articles/1.gif. и естественно что этого файла не существует. В чем проблема то?!

  Ответить  
 
 автор: cheops   (19.09.2009 в 23:00)   письмо автору
 
   для: alesh@   (19.09.2009 в 22:50)
 

Нужно исправить строки
<?php
  $f 
$_SERVER['DOCUMENT_ROOT'].'/articles/articles/'.$f;
  
unlink($f);
?>

на
<?php
  $f 
$_SERVER['DOCUMENT_ROOT'].'/articles/articles/1/'.$f;
  
unlink($f);
?>

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

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