Показать полную графическую версию : Удаление файлов из списка указанного в txt
Есть нижеследующий пример.
К нему необходимо добавить функцию удаления директорий (и поддиректорий)
Смотрел http://ru.php.net/manual/en/function.ftp-rmdir.php и пробовал подставлять
примеры от туда. Не получалось.
Решил обратиться к вам за помощью.
Если у кого есть уже готовый вариант то готов перейти на него - не принципиально
главное чтоб работало :(
Всем откликнувшимся заранее большущие спасибо!
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$ftp_user_name = '*';
$ftp_user_pass = '*';
$ftp_server = '*';
$conn_id=ftp_connect($ftp_server);
$login_result=ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
if($login_result) echo 'Connected.<hr><br>';
$pathes=file('files_to_delete.txt');
foreach ($pathes as $path)
{
$path=trim($path);
if(ftp_delete($conn_id, $path))
{
echo 'Deleted -> '.$path.'<br>';
}
}
ftp_close($conn_id);
?>
судя по всему - решено nulled.cc/showthread.php?p=1172571
решать одну проблему одновременно в нескольких форумах крайне неэтично
К сожалению проблема так и не решилась - человек пропал...
Может в отпуск уехал... а может просто надоело.
Последнее до чего мы там дашли также не работало :(
А так на данном форуме мне очень помогли решил переспросить-продолжить
Может кто-нибудь сможет помочь примером?
Sham, ты не прав.
blacks2, не получалось - это не ответ.
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$ftp_user_name = '*';
$ftp_user_pass = '*';
$ftp_server = '*';
$conn_id=ftp_connect($ftp_server);
$login_result=ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
if(!$login_result) echo 'No connected.<hr><br>';
$pathes=file('files_to_delete.txt');
echo 'Из файла прочитанны следующие файлы <br>';
print_r ($patches);
echo 'Результат работы: <br>';
foreach ($pathes as $path)
{
$path=trim($path);
if(ftp_delete($conn_id, $path))
{
echo 'Deleted -> '.$path.'<br>';
}
else
{
echo 'Not deleted -> '.$path.'<br>';
}
}
ftp_close($conn_id);
?>
Что показывает этот код.
Пишет вот что:
Из файла прочитанны следующие файлы
Notice: Undefined variable: patches in /home/user/www/site/public_html/del2/del.php on line 15
Результат работы:
Warning: ftp_delete() [function.ftp-delete]: /public_html/del2/ez/3/: Operation not permitted in /home/user/www/user/public_html/del2/del.php on line 20
Not deleted -> /public_html/del2/ez/3/
Deleted -> /public_html/del2/ez/3/2.html
Рабочий пример с удаление файлов у меня есть...
а нужно чтоб и директории удалялись :(
Igor_I, что сможете сказать по "ответу скрипта" ?
Проверять, существует ли слеш в конце пути, если есть то функция ftp_rmdir, если нет, то - ftp_delete.
Либо проверять каждый путь, файл это или директория. Опять же в зависимости от этого использовать разные функции.
Проверять, существует ли слеш в конце пути, если есть то функция ftp_rmdir, если нет, то - ftp_delete.
Либо проверять каждый путь, файл это или директория. Опять же в зависимости от этого использовать разные функции. »
То есть вы хотите сказать что это абсолютно сырой в-нт!? :cry:
И к нему нужно еще 2 страницы кода!?
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$ftp_user_name = '*';
$ftp_user_pass = '*';
$ftp_server = '*';
$conn_id=ftp_connect($ftp_server);
$login_result=ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
if(!$login_result) echo 'No connected.<hr><br>';
$pathes=file('files_to_delete.txt');
echo 'Из файла прочитанны следующие файлы <br>';
print_r ($pathes);
echo 'Результат работы: <br>';
foreach ($pathes as $path)
{
$path=trim($path);
if(ftp_delete($conn_id, $path))
{
echo "Файл $path удален\n";
}
else
{
echo "Не удалось удалить $path\n";
if (ftp_rmdir($conn_id, $path))
{
echo "Директория $path удалена\n";
}
else
{
echo "Не удалось удалить директорию $path\n";
}
}
}
ftp_close($conn_id);
?>
Спасибо.
Но работает на половину:
Из файла прочитанны следующие файлы
Array ( [0] => public_html/del2/ez/3/ [1] => public_html/del2/ez/3/1.html ) Результат работы:
Warning: ftp_delete() [function.ftp-delete]: public_html/del2/ez/3/: Operation not permitted in /home/user/www/site/public_html/del2/del.php on line 22
Не удалось удалить public_html/del2/ez/3/
Warning: ftp_rmdir() [function.ftp-rmdir]: public_html/del2/ez/3/: Operation not permitted in /home/user/www/site/public_html/del2/del.php on line 30
Не удалось удалить директорию public_html/del2/ez/3/ Файл public_html/del2/ez/3/1.html удален
files_to_delete.txt
public_html/del2/ez/3/
public_html/del2/ez/3/1.html
:dont-know
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$ftp_user_name = '*';
$ftp_user_pass = '*';
$ftp_server = '*';
$conn_id=ftp_connect($ftp_server);
$login_result=ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
if(!$login_result) echo 'No connected.<hr><br>';
$pathes=file('files_to_delete.txt');
echo 'Из файла прочитанны следующие файлы <br>';
print_r ($pathes);
echo '-------------<br>Перед выполнением скрипта: <br>';
// получение списка файлов директори /
$buff = ftp_rawlist($conn_id, '/');
// вывод буфера
var_dump($buff);
echo '-------------<br>Результат работы: <br>';
foreach ($pathes as $path)
{
$path=trim($path);
if(ftp_delete($conn_id, $path))
{
echo "<br>Файл $path удален\n";
}
else
{
echo "<br>Не удалось удалить $path\n";
if (ftp_rmdir($conn_id, $path))
{
echo "<br>Директория $path удалена\n";
}
else
{
echo "<br>Не удалось удалить директорию $path\n";
}
}
}
// получение списка файлов директори /
$buff = ftp_rawlist($conn_id, '/');
// вывод буфера
var_dump($buff);
ftp_close($conn_id);
?>
не удаляет:
Из файла прочитанны следующие файлы
Array ( [0] => public_html/del2/ez/3/ [1] => public_html/del2/ez/3/1.html ) -------------
Перед выполнением скрипта:
array(4) { [0]=> string(56) "drwxr-xr-x 4 user www 512 Nov 14 2008 ." [1]=> string(57) "drwxr-xr-x 4 user (?) 512 Nov 14 2008 .." [2]=> string(62) "drwxr-xr-x 2 user (?) 512 Nov 14 2008 cgi-bin" [3]=> string(66) "drwxr-xr-x 16 ligeja (?) 512 Aug 26 17:39 public_html" } -------------
Результат работы:
Warning: ftp_delete() [function.ftp-delete]: public_html/del2/ez/3/: Operation not permitted in /home/user/www/site/public_html/del2/del.php on line 32
Не удалось удалить public_html/del2/ez/3/
Warning: ftp_rmdir() [function.ftp-rmdir]: public_html/del2/ez/3/: Operation not permitted in /home/user/www/site/public_html/del2/del.php on line 40
Не удалось удалить директорию public_html/del2/ez/3/
Файл public_html/del2/ez/3/1.html удален array(4) { [0]=> string(56) "drwxr-xr-x 4 user (?) 512 Nov 14 2008 ." [1]=> string(57) "drwxr-xr-x 4 user (?) 512 Nov 14 2008 .." [2]=> string(62) "drwxr-xr-x 2 user (?) 512 Nov 14 2008 cgi-bin" [3]=> string(66) "drwxr-xr-x 16 user (?) 512 Aug 26 17:39 public_html" }
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$ftp_user_name = '*';
$ftp_user_pass = '*';
$ftp_server = '*';
$conn_id=ftp_connect($ftp_server);
$login_result=ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
if(!$login_result) echo 'No connected.<hr><br>';
$dir = 'blacks33';
if (ftp_mkdir($conn_id, $dir))
{
echo "<br>Создана директория $dir\n";
}
else
{
echo "<br>Не удалось создать директорию $dir\n";
}
// получение списка файлов директори /
$buff = ftp_rawlist($conn_id, '/public_html/del2/ez', true);
// вывод буфера
var_dump($buff);
if (ftp_rmdir($conn_id, $dir))
{
echo "<br>Директория $dir удалена\n";
}
else
{
echo "<br>Не удалось удалить директорию $dir\n";
}
ftp_close($conn_id);
?>
Ответ оформить тегом скрытого текста.
:(
Вот что получается:
Warning: ftp_mkdir() [function.ftp-mkdir]: blacks33: Operation not permitted in /home/user/www/site/public_html/del2/del.php on line 16
Не удалось создать директорию blacks33 array(17) { [0]=> string(56) "drwxrwxr-x 3 user www 512 Aug 25 03:20 ." [1]=> string(57) "drwxrwxr-x 3 user (?) 512 Aug 25 03:20 .." [2]=> string(64) "-rw-r--r-- 1 user (?) 0 Aug 26 16:13 .htaccess" [3]=> string(61) "-rw-r--r-- 1 user (?) 94 Aug 26 16:13 1.html" [4]=> string(61) "-rw-r--r-- 1 user (?) 94 Aug 26 16:13 2.html" [5]=> string(56) "drwxrwxr-x 2 user (?) 512 Aug 26 17:50 3" [6]=> string(61) "-rw-r--r-- 1 user (?) 94 Aug 26 16:13 3.html" [7]=> string(65) "-rw-r--r-- 1 user (?) 94 Aug 26 16:13 index.html" [8]=> string(0) "" [9]=> string(23) "/public_html/del2/ez/3:" [10]=> string(56) "drwxrwxr-x 2 user (?) 512 Aug 26 17:50 ." [11]=> string(57) "drwxrwxr-x 3 user (?) 512 Aug 25 03:20 .." [12]=> string(64) "-rw-r--r-- 1 user (?) 0 Aug 26 16:14 .htaccess" [13]=> string(61) "-rw-r--r-- 1 user (?) 94 Aug 26 16:14 2.html" [14]=> string(61) "-rw-r--r-- 1 user (?) 94 Aug 26 16:14 3.html" [15]=> string(62) "-rw-r--r-- 1 user (?) 2139 Aug 25 04:16 del.php" [16]=> string(65) "-rw-r--r-- 1 user (?) 94 Aug 26 16:14 index.html" }
Warning: ftp_rmdir() [function.ftp-rmdir]: blacks33: Operation not permitted in /home/user/www/site/public_html/del2/del.php on line 31
Не удалось удалить директорию blacks33
Получается что нет прав на создание и удаление директорий.
Получается что нет прав на создание и удаление директорий. »
Подскажите почему так получается?
CHMOD? - так он там 775 на папке
Попробовал в последии три приведенных вами примера добавить ftp_pasv($conn, true);
получалось нечто подобное:
$login_result=ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
if(!$login_result) echo 'No connected.<hr><br>';
ftp_pasv($conn, true);
Но опять - положительного результата так и не получилось :(
Так поставь 0777.
Проверил скрипт - работает. Ищи сам на фтп, что не так.
Так поставь 0777.
Везде поставил 777, на все! - тоже самое
Проверил скрипт - работает. Ищи сам на фтп, что не так
Спасибо за проверку.
Что смотреть ума не приложу.
Попробую с саппортом поговорить
Если не сложно приаттач файл с той версией которую тестил - рабочию.
- Мож я что-то всетаки с файлом намутил не то
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$ftp_user_name = 'ig';
$ftp_user_pass = 'ig';
$ftp_server = '192.168.0.2';
$conn_id=ftp_connect($ftp_server);
$login_result=ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
if(!$login_result) echo 'No connected.<hr><br>';
$dir = 'blacks33';
if (ftp_mkdir($conn_id, $dir))
{
echo "<br>Создана директория $dir\n";
}
else
{
echo "<br>Не удалось создать директорию $dir\n";
}
// получение списка файлов директори /
$buff = ftp_rawlist($conn_id, '/public_html/del2/ez', true);
// вывод буфера
var_dump($buff);
/*
if (ftp_rmdir($conn_id, $dir))
{
echo "<br>Директория $dir удалена\n";
}
else
{
echo "<br>Не удалось удалить директорию $dir\n";
}
*/
ftp_close($conn_id);
?>
Созданная директория имеет права 0755, владелец - nobody, группа - www
Сервер - pure-ftp, v1.0.22
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.