Люди помогите пожалуйста вот весть код как мне сделать чтобы не сносило полностью папку user а только нужную в ней ?
function rdir($dir) {
if ($handle=opendir($dir)) {
while (($file=readdir($handle))<>false) {
if (is_file($dir."/".$file)) {
chmod($dir."/".$file,0777); unlink($dir."/".$file);
}
elseif (is_dir($dir."/".$file)&&($file<>".")&&($file<>".."))
{ chmod($dir."/".$file,0777);
rdir($dir."/".$file); }
} closedir($handle);
chmod($dir,0777);
if (rmdir($dir)) {return true;} else {return false;}
}
}
if (!empty ($_GET['name'])){
$name = ($_POST['name']);
if (file_exists("../images/smileys/user/$name")){
$dir='../images/smileys/user/' . $name;
rdir($dir);
if (!file_exists("../images/smileys/user/$name")){
echo '<div class=b><b><p align="center">Папка успешно удалена</p></b></div>';
}else{
echo '<div class = rmenu><p align="center">Не удалось удалить папку</p></div>'; }
} }else{
echo '<div class = rmenu><p align="center">Папка не найдена !</p></div>'; }
Fenix_61, Добавь в функцию global $name; и определяй эту переменную перед вызовом функции
Koenig (12.04.2012/15:25)
Fenix_61, Добавь в функцию global $name; и определяй эту переменную перед вызовом функции
Так
function rdir($dir) {
global $name = $name;
if ($handle=opendir($dir)) {
while (($file=readdir($handle))<>false) {
if (is_file($dir."/".$file)) {
chmod($dir."/".$file,0777); unlink($dir."/".$file);
}
elseif (is_dir($dir."/".$file)&&($file<>".")&&($file<>".."))
{ chmod($dir."/".$file,0777);
rdir($dir."/".$file); }
} closedir($handle);
chmod($dir,0777);
if (rmdir($dir)) {return true;} else {return false;}
}
}
if (!empty ($_GET['name'])){
global $name = ($_POST['name']);
if (file_exists("../images/smileys/user/$name")){
$dir='../images/smileys/user/' . $name;
rdir($dir);
if (!file_exists("../images/smileys/user/$name")){
echo '<div class=b><b><p align="center">Папка успешно удалена</p></b></div>';
}else{
echo '<div class = rmenu><p align="center">Не удалось удалить папку</p></div>'; }
} }else{
echo '<div class = rmenu><p align="center">Папка не найдена !</p></div>'; }
или как ? Можешь показать на моем куске кода ?
Fenix_61, Не проще ли передавать в функцию сразу папку? Я тебе вначале темы писал пример, и даже дал ссылку на функцию , сам писал , уверен в ней.
function rdir($dir) {
#global $name;
if ($handle=opendir($dir)) {
while (($file=readdir($handle))!==false) {
if (is_file($dir . '/'. $file)) {
chmod($dir . '/' . $file, 0777); unlink($dir . '/' . $file);
}
elseif (is_dir($dir . '/' . $file) && ($file!='.') && ($file!='..'))
{ chmod($dir . '/' . $file, 0777);
rdir($dir . '/' . $file);
}
} closedir($handle);
chmod($dir, 0777);
if (rmdir($dir)) {
return true;
} else {
return false;
}
}
}
if (!empty ($_GET['name'])){
$name = ($_POST['name']);
if (file_exists('../images/smileys/user/' . $name)) {
$dir = '../images/smileys/user/' . $name;
rdir($dir);
if (!file_exists('../images/smileys/user/' . $name)) {
echo '<div class=b><b><p align="center">Папка успешно удалена</p></b></div>';
} else {
echo '<div class = rmenu><p align="center">Не удалось удалить папку</p></div>';
}
}
} else {
echo '<div class = rmenu><p align="center">Папка не найдена !</p></div>';
}
С тела, не проверял, по сути там и не нужна эта переменная
Fenix_61, А... Проверка папки через file_exists поменять на is_dir
Koenig (12.04.2012/16:53)
Fenix_61, Не проще ли передавать в функцию сразу папку? Я тебе вначале темы писал пример, и даже дал ссылку на функцию , сам писал , уверен в ней.
[php] function rdir($dir) {
#global $name;
if ($
Спасибо большое все работает !
Подробно и с комментариями
<?php
$path = "../gallery/";//Удалим папку gallery и всё содержимое
function RemoveDir($path) {//Функция рекурсивного удаления
if (file_exists($path) && is_dir($path)) {//Проверяем существует ли папка и папка ли это вообще
$dirHandle = opendir($path);//Заходим в папку
while (false !== ($file = readdir($dirHandle))) {//По циклу пока есть что-то внутри берём это
if ($file != '.' && $file != '..') {//Исключаем папки поднятия вверх на каталог
$tmpPath = $path . '/' . $file;//Сохраняем путь к файлу/папке
@chmod($tmpPath, 0777);//Ставим чмод который позволит нам делать всё
if (is_dir($tmpPath)) {//Проверяем точно ли это папка?
RemoveDir($tmpPath);//Запускаем нашу функцию нова
} else {//Если это файл
if (file_exists($tmpPath)) {//Проверяем файл ли это?
unlink($tmpPath);//Это файл! Удаляем его!
}
}
}
}
closedir($dirHandle);//Выходим из папки
if (file_exists($path)) {//Проверка существует ли ещё наша папка?
rmdir($path);//Удаляем нафег
echo 'Папка и всё содержимое успешно удалено!';
}
} else {
echo 'Удаляемой папки не существует или это файл!';
}
}
?>