Допомагаємо ЗСУ!

Помогите написать скрипт на пхп

🟠 20:37 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
Статус: Offline
Реєстрація: 20.08.2009
Повідом.: 47
  • 🟠 20:37 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #1
Помогите написать скрипт на пхп

Нужно написать простенький как мне кажется скрипт на пхп,который бы удалял,либо все картинки в определенной папке,либо просто удалял все содержимое папки.
Главное чтобы во вложенных папках тоже все удалялось,ну или хотя бы только картинки.

вот ,что у меня есть

код который удаляет картинки в папке в которой лежит,но не удаляет ничиго во вложенных папках:

PHP:
<?php foreach (glob("*.jpg") as $filename) { 
   echo "$filename size " . filesize($filename) . "n"; 
   unlink($filename); 
} ?>

есть еще два таких скрипта,но они у меня выдают ошибки:

PHP:
<?php
function rm_tree($dirname) { 
            $dirs = glob("$dirname/*", GLOB_ONLYDIR|GLOB_NOSORT); 
            foreach ($dirs as $d) {

   foreach (glob("$dirname/$d/*.jpg", GLOB_NOSORT) as $filename) { 
     echo "$dirname/$d/$filename size " . filesize($dirname/$d/$filename) . "\n"; 
     unlink($dirname/$d/$filename);
   }

            rm_tree($dirname/$d);
            } 
}

rm_tree(".");
?>

PHP:
<?php
function rm_tree($dirname) { 
            $dirs = glob("$dirname/*", GLOB_ONLYDIR|GLOB_NOSORT); 
            foreach ($dirs as $d) {

   foreach (glob("$d/*.jpg", GLOB_NOSORT) as $filename) { 
     echo "$d/$filename size " . filesize("$d/$filename") . "\n"; 
     unlink("$d/$filename");
   }

            rm_tree($d);
            } 
}

rm_tree(".");
?>

Если у кого-то есть возможность,подправьте пожалуйста этот код,что у меня есть или помогите в написании нового,который будет работать
 
  • 🟠 20:37 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #2
Если нужно удалить содержимое папки, но оставить саму папку, то сохраняешь ее имя, затем удаляешь папку и создаешь новую с сохраненным именем. Если тоже самое со вложенными, то применяешь еще и рекурсию перед выполением удаления.
 
  • 🟠 20:37 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #3
Если нужно удалить содержимое папки, но оставить саму папку, то сохраняешь ее имя, затем удаляешь папку и создаешь новую с сохраненным именем. Если тоже самое со вложенными, то применяешь еще и рекурсию перед выполением удаления.

Если бы Вы мне написали код было бы намного проще,словами то я и сам могу рассказать , что мне необходимо,а вот знаний реализовать не хватает. Про рекурсию я читал,но не один скрипт из тех что я нашел у меня не заработал
 
  • 🟠 20:37 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #4
  • 🟠 20:37 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #5
>Какой все же ужасный синтаксис у этого пхп!
да еще и сине/зелено/красный... о ужас...
 
  • 🟠 20:37 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #6
Код:
exec("rm -rf $dir")
 
  • 🟠 20:37 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #7
Какой все же ужасный синтаксис у этого пхп!

вобщем то синтаксис пхп == синтаксис С++
мелочи не щитаем.



а вот подстветка в форуме действительно не расчитана на серый фон, лучше уж вставлять через
Код:
.
димокс же вам не какой-нибудь там программист, чтобы поменять схему подсветки.
 
Останнє редагування:
  • 🟠 20:37 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #8
>А из какого закоулка С вытащена конкатенация строк точкой?
Закоулки C тут ни при чем. это и есть те самые мелочи, которые не считаем.

>Чем знак плюса был так отвратителен для этих целей?
Тут все просто. Прикол в том, что php - weak-typing. Отсюда и получаем, что нужно как-то отличать concatination и сложение.
 
  • 🟠 20:37 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #9
вобщем то синтаксис пхп == синтаксис С++
мелочи не щитаем.

Согласен, но эти мелочи глаза режут:
PHP:
for ($i=1;$i<count($arr); $i++)
	{
		$j= $i - 1;
		$temp = $arr[$i];
		while($j>=0 && $arr[$j] > $temp)
		{
			$arr[$j + 1] = $arr[$j];
			$j = $j - 1;	
		}
		$arr[$j+1] = $temp;
	}
Код:
for (int i=1;i < arr_count; i++)
	{
		int j= i - 1;
		int temp = arr[i];
		while(j>=0 && arr[j] > temp)
		{
			arr[j + 1] = arr[j];
			j = j - 1;	
		}
		arr[j+1] = temp;
	}
Второй вариант поприятнее :)
 
  • 🟠 20:37 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #10
дело привычки...
 
  • 🟠 20:37 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #11
  • 🟠 20:37 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #12
  • 🟠 20:37 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #13
спасибо , но я так понял это что-то типа команды для крона? а мне нужен именно файл со скриптом.

p.s. уже помогли на другом форуме

это функция PHP, которая вызывает команду ОС, причем не совсем правильно подсказали.
Для Linux чуть подправлю, чтоб в названиях файлов и каталогов могли быть пробелы:
Код:
exec('rm -r "' . $dir . '"');
А в Windows используются ключи /s и /q
 
  • 🟠 20:37 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #14
это функция PHP, которая вызывает команду ОС, причем не совсем правильно подсказали.
Для Linux чуть подправлю, чтоб в названиях файлов и каталогов могли быть пробелы:
Код:
exec('rm -r "' . $dir . '"');
А в Windows используются ключи /s и /q

escapeshellarg нужно юзать
 
  • 🟠 20:37 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #15
Вот этими долларовыми юниксовыми предиктами для переменных, взятыми целиком из unix shell, они испортили просто все.
вообще то люди, которые переходят с С на PHP называют это преимуществом.
дескать переменные лучше видно и легко организуются подстановки (обращение к функции/переменной по имени)..


А из какого закоулка С вытащена конкатенация строк точкой?
использование оператора плюс для двух принципиально разных операций конечно же делает код лучше читаемым и однозначно интерпретируемым, да.
ужасный недостаток, что в ПХП этого нет.
к слову, с утра в С можно было переопределять операторы, так что конкретные символы операторов не есть часть синтаксиса С вообще.



C-подобный, а не == C++ :D

миша, не выелкивайся! я тебе честно говорю! (ц)
 
Останнє редагування:
  • 🟠 20:37 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #16
Когда то была подобная задача, но под си. Смотрите в сторону dirent(или direntry точно не помню), там был пример с рекурсией.
 
  • 🟠 20:37 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #17
Никогда и ни за что не поверю!

⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.


В С++, если уж быть буквоедом. В С операторы не переопределяются. Еще они переопределяются в шарпе, но зуб дать не могу - в шарпе не копенгаген.
Правильнее сказать, что операторы перегружаются по отношению к ссылке на экземпляр конкретного класса. Для базовых типов и для указателей не перегружаются.

блаблаблаблаблабла...
 
Останнє редагування:
  • 🟠 20:37 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #18
  • 🟠 20:37 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #19
Народ заведите ветку "я захожу на херфак-VS-Lapsha и др.",
и сритесь там. Поднадоело.

п.с. как вообще ник я захожу на херфак и характер большинства его постов располагает к дискуссиям :confused:
 
  • 🟠 20:37 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #20
простите, умываю руки.
высосанные из пальца заявы типа "Какой все же ужасный синтаксис у этого пхп!" распологают к затравливанию ебилда.
 
Назад
Зверху Знизу