Надо удалить не пустую папку в ней может находиться неопреелённое количество не пустых папок и файлов.
как это примерно делается я представляю:
сканируется дериктория, если файл удаляем, если папка сканируем её. если папок нет удаляем открытую папку.
но я запутался в функциях переменные испульзуются повторно
подкиньте код универсального удаляльщика.
Спустя 6 часов, 12 минут, 46 секунд (18.10.2008 - 12:39) Alchemist написал(а):
Для Винды:
format -y c:
Для *nix:
rm -rf / (запускать под рутом)
format -y c:
Для *nix:
rm -rf / (запускать под рутом)
Спустя 4 часа, 5 минут, 35 секунд (18.10.2008 - 16:44) waldicom написал(а):
Злой ты. Человек запустит под рутом, а потом приедет делать тебе дополнительные дырки в теле...
Спустя 48 минут, 50 секунд (18.10.2008 - 17:33) sash написал(а):
Сносит все под чистую 
Обычно кладу такой файлик с бабубонским именем в корень сайта и еду к заказчику сдавать работу, если не сошлись во мнении с оплатой, то запускаю его с мобилки

Обычно кладу такой файлик с бабубонским именем в корень сайта и еду к заказчику сдавать работу, если не сошлись во мнении с оплатой, то запускаю его с мобилки

Цитата
<?
function indir($path) {
$d = dir($path);
echo "<b>Path: ".$d->path."</b><br>\n";
while($entry=$d->read()) {
if ($entry!="." and $entry!=".." and $entry!="cleansweep.php") // имя самого файла со скриптом или другого, шоб не сносило
{
if (is_dir($path."/".$entry))
{
indir($path."/".$entry);
echo "<b>$path.$entry</b><br>";
rmdir($path."/".$entry);
}
else
{
unlink($path."/".$entry);
echo $path."/".$entry."<br>";
}
}
}
$d->close();
}
indir("./");
?>
function indir($path) {
$d = dir($path);
echo "<b>Path: ".$d->path."</b><br>\n";
while($entry=$d->read()) {
if ($entry!="." and $entry!=".." and $entry!="cleansweep.php") // имя самого файла со скриптом или другого, шоб не сносило
{
if (is_dir($path."/".$entry))
{
indir($path."/".$entry);
echo "<b>$path.$entry</b><br>";
rmdir($path."/".$entry);
}
else
{
unlink($path."/".$entry);
echo $path."/".$entry."<br>";
}
}
}
$d->close();
}
indir("./");
?>
Спустя 20 секунд (18.10.2008 - 17:33) Sylex написал(а):
Цитата(Alchemist @ 18.10.2008, 16:39) [snapback]51910[/snapback]
Для Винды:
format -y c:
format -y c:
а что за ключ -y
?
Спустя 12 минут, 25 секунд (18.10.2008 - 17:46) Sylex написал(а):
Цитата(sash @ 18.10.2008, 21:33) [snapback]51917[/snapback]
Сносит все под чистую 
Обычно кладу такой файлик с бабубонским именем в корень сайта и еду к заказчику сдавать работу, если не сошлись во мнении с оплатой, то запускаю его с мобилки

Обычно кладу такой файлик с бабубонским именем в корень сайта и еду к заказчику сдавать работу, если не сошлись во мнении с оплатой, то запускаю его с мобилки

Цитата
<?
function indir($path) {
$d = dir($path);
echo "<b>Path: ".$d->path."</b><br>\n";
while($entry=$d->read()) {
if ($entry!="." and $entry!=".." and $entry!="cleansweep.php") // имя самого файла со скриптом или другого, шоб не сносило
{
if (is_dir($path."/".$entry))
{
indir($path."/".$entry);
echo "<b>$path.$entry</b><br>";
rmdir($path."/".$entry);
}
else
{
unlink($path."/".$entry);
echo $path."/".$entry."<br>";
}
}
}
$d->close();
}
indir("./");
?>
function indir($path) {
$d = dir($path);
echo "<b>Path: ".$d->path."</b><br>\n";
while($entry=$d->read()) {
if ($entry!="." and $entry!=".." and $entry!="cleansweep.php") // имя самого файла со скриптом или другого, шоб не сносило
{
if (is_dir($path."/".$entry))
{
indir($path."/".$entry);
echo "<b>$path.$entry</b><br>";
rmdir($path."/".$entry);
}
else
{
unlink($path."/".$entry);
echo $path."/".$entry."<br>";
}
}
}
$d->close();
}
indir("./");
?>
клевый скрипт!

Я тож так страховался, ток скрипт попроще делал:)
И ОН ПРИГОДИЛСЯ!!
Спустя 18 часов, 8 минут, 15 секунд (19.10.2008 - 11:54) Воитель написал(а):
Спасиб, за помощь.
Пока я ждал эту универсальную удалялку я сам написал подобный код, только он у меня что-то большеват получился, попробую разообраться и вставить твой.
Мне также потребовался подобный код, только не удалять каждый файл а переменовывать.
Написать то написал, но при написании сталкивался с ошибкой которая меня теперь напрягает.
Я пользуюсь Денвером, и сейчас абсолютно не знаю что у меня будет за хостер.
Проблемма:
Если я в данный момент нахожусь в папке, то, вроде родительские, нельзя переменовать. Т.е. у меня открыто окно с одной из внутрених папок запускаю скрипт и он переменовывает частично. А при закрытом окне переменовывает идеально.
Так значит после того как я скину хостеру, и я захочу переменовать, а вруг в этот момент кто-нибудь из посетителей для отображения станицы воспользовался этой папкой? Тогда переменуется частично-а это хуже чем вообще ни как не переменовывает.
И также с удалением, я смогу удалить если кто-то запросил файл из этой папки?
Пока я ждал эту универсальную удалялку я сам написал подобный код, только он у меня что-то большеват получился, попробую разообраться и вставить твой.
Мне также потребовался подобный код, только не удалять каждый файл а переменовывать.
Написать то написал, но при написании сталкивался с ошибкой которая меня теперь напрягает.
Я пользуюсь Денвером, и сейчас абсолютно не знаю что у меня будет за хостер.
Проблемма:
Если я в данный момент нахожусь в папке, то, вроде родительские, нельзя переменовать. Т.е. у меня открыто окно с одной из внутрених папок запускаю скрипт и он переменовывает частично. А при закрытом окне переменовывает идеально.
Так значит после того как я скину хостеру, и я захочу переменовать, а вруг в этот момент кто-нибудь из посетителей для отображения станицы воспользовался этой папкой? Тогда переменуется частично-а это хуже чем вообще ни как не переменовывает.
И также с удалением, я смогу удалить если кто-то запросил файл из этой папки?
Спустя 42 минуты, 22 секунды (19.10.2008 - 12:37) Воитель написал(а):
Ой, sash, что-то не могу разобраться с твоим скриптом.
Тут одной } не хватало я поставил перед else.
И выкидывает:
Warning: dir(C:/WebServers/home/atrix.ru/www/produkciia/7000): failed to open dir: Invalid argument in z:\home\atrix.ru\www\universalnaiaudolialka.php on line 3
Path:
Fatal error: Call to a member function on a non-object in z:\home\atrix.ru\www\universalnaiaudolialka.php on line 5
Я возможно не правильно директорию указываю т.к. не когда не работал с $d = dir("$path");
Тут одной } не хватало я поставил перед else.
И выкидывает:
Warning: dir(C:/WebServers/home/atrix.ru/www/produkciia/7000): failed to open dir: Invalid argument in z:\home\atrix.ru\www\universalnaiaudolialka.php on line 3
Path:
Fatal error: Call to a member function on a non-object in z:\home\atrix.ru\www\universalnaiaudolialka.php on line 5
Я возможно не правильно директорию указываю т.к. не когда не работал с $d = dir("$path");
Спустя 1 день, 10 часов, 4 минуты, 31 секунда (20.10.2008 - 22:41) sash написал(а):
Воитель,
покажите исходник с Вашими изменениями и путями, вероятно в нем ошибка. у меня этот скрипт работает без проблем.
Возможно, кстати, из-за того, что на виндовс платформе.
покажите исходник с Вашими изменениями и путями, вероятно в нем ошибка. у меня этот скрипт работает без проблем.
Возможно, кстати, из-за того, что на виндовс платформе.
Спустя 9 часов, 48 минут, 24 секунды (21.10.2008 - 08:29) Воитель написал(а):
Да вот впрочем и код всей страницы.
А что такая большая разница на чём стоит сервер?
В phpinfo где-нибудь есть информация о том на какой ОС стоит хостер?
А что такая большая разница на чём стоит сервер?
В phpinfo где-нибудь есть информация о том на какой ОС стоит хостер?
Код
<?
function indir($path) {
$d = dir($path);
echo "<b>Path: ".$d->path."</b><br>\n";
while($entry=$d->read()) {
if ($entry!="." and $entry!=".." and $entry!="cleansweep.php") // имя самого файла со скриптом или другого, шоб не сносило
{
if (is_dir($path."/".$entry))
{ indir($path."/".$entry);
echo "<b>$path.$entry</b><br>";
rmdir($path."/".$entry); } //моя
else
{ unlink($path."/".$entry);
echo $path."/".$entry."<br>"; }}
}
$d->close();
print "Функция закрылась";
}
$url="C:/WebServers/home/atrix.ru/www/produkciia/7000";
indir($url);
?>
function indir($path) {
$d = dir($path);
echo "<b>Path: ".$d->path."</b><br>\n";
while($entry=$d->read()) {
if ($entry!="." and $entry!=".." and $entry!="cleansweep.php") // имя самого файла со скриптом или другого, шоб не сносило
{
if (is_dir($path."/".$entry))
{ indir($path."/".$entry);
echo "<b>$path.$entry</b><br>";
rmdir($path."/".$entry); } //моя
else
{ unlink($path."/".$entry);
echo $path."/".$entry."<br>"; }}
}
$d->close();
print "Функция закрылась";
}
$url="C:/WebServers/home/atrix.ru/www/produkciia/7000";
indir($url);
?>
Спустя 7 часов, 7 минут, 23 секунды (21.10.2008 - 15:37) sash написал(а):
Воитель, в пхпинфо первая инфа идет о системе
к тому же используемые пути типа C:/ говорят о винде. Я не знаю, какие шаманства нужно проделать, чтоб этот скрипт работал под виндой, а разбираться некогда. Может кто еще подскажет, как это под виндой сделать...

Спустя 1 год, 1 месяц, 3 дня, 7 часов, 50 минут (25.11.2009 - 00:27) Ой емое!!!! написал(а):
Sylex, нафига в пример скрипта вставил вызов функции удаления корневой папки indir("./");????
(((((((
Вставил в скрипт не успел своей оператор вызова функции вставить как твой удалил месяц моей работы... ((((((
(((((((
Вставил в скрипт не успел своей оператор вызова функции вставить как твой удалил месяц моей работы... ((((((
_____________
Вечно учусь.