Массовое удаление файлов из разных директорий на сервере.

Статус
В этой теме нельзя размещать новые ответы.
Перебробовал все примеры с

но так ничего и не заработало! :be::die:
 
Ды я убрал сообщение connected, там щас показываютяс сообщения только если не прошло соединение.
Ну раз скрипт висит, значит он работает. вы проверьте.
 
Ды я убрал сообщение connected, там щас показываютяс сообщения только если не прошло соединение.
Ну раз скрипт висит, значит он работает. вы проверьте.

пароли проверил.
файл в котором список удалений
public_html/del2/ez/3/
public_html/del2/ez/3/1.html
сам del.php лежит в public_html/del2/

запустил... минут наверно через 10-20 появлятся ошибка
504 Gateway Time-out

вот на чем тестил:
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);

$pathes = file('files_to_delete.txt');


foreach ($pathes as $path) {
    $path = trim($path);
    ftp_rmdirr($path, $conn_id);
}

ftp_close($conn_id);



function ftp_rmdirr($path, $handle) {
    if (!(@ftp_rmdir($handle, $path) || @ftp_delete($handle, $path)))
        {
        $list = ftp_nlist($handle, $path);
        if (!empty($list))
            foreach($list as $value)
                ftp_rmdirr($value, $handle);
        }
    @ftp_rmdir($handle, $path);
}

?>
 
Поробовал подключить функцию пассивного доступа к фтп
И еще немного изменений.
Результат тот-же! - Постоянное ожидание и никакого удаления :(

Код:
<?php
ini_set('display_errors', 1); 
ini_set('display_startup_errors', 1); 
error_reporting(E_ALL);
set_time_limit(0);

$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>';
ftp_pasv($conn, true);

$pathes = file('files_to_delete.txt');

foreach ($pathes as $path) {
    $path = trim($path);
    ftp_rmdirr($path, $conn_id);
}

ftp_close($conn_id);

function ftp_rmdirr($path, $handle) {
    if (!(@ftp_rmdir($handle, $path) || @ftp_delete($handle, $path)))
        {
        $list = ftp_nlist($handle, $path);
        if (!empty($list))
            foreach($list as $value)
                ftp_rmdirr($value, $handle);
        }
    @ftp_rmdir($handle, $path);
}

files_to_delete.txt
public_html/del2/ez/3/
public_html/del2/ez/3/1.html

Помогите!
 
А зачем ты в функции ftp_rmdir подавляешь ошибки? Возможно если убрать подавление увидишь на чем спотыкается скрипт...
 
А зачем ты в функции ftp_rmdir подавляешь ошибки? Возможно если убрать подавление увидишь на чем спотыкается скрипт...
Построив догадки предположл что нужно удалить вот это:
{
$list = ftp_nlist($handle, $path);
if (!empty($list))
foreach($list as $value)
ftp_rmdirr($value, $handle);
}​
Но удаление привело только к синтаксической ошибке.
Что удалить правильно я не понял.

Попробовал еще раз:
PHP:
<?php
set_time_limit(0);
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);
ftp_pasv($conn_id, true);

$pathes = file('files_to_delete.txt');

foreach ($pathes as $path) {
    $path = trim($path);
    ftp_rmdirr($path, $conn_id);
}

ftp_close($conn_id);

function ftp_rmdirr($path, $handle) {
    if (!(@ftp_rmdir($handle, $path) || @ftp_delete($handle, $path)))
        {
        $list = ftp_nlist($handle, $path);
        if (!empty($list))
            foreach($list as $value)
                ftp_rmdirr($value, $handle);
        }
    @ftp_rmdir($handle, $path);
}
files_to_delete.txt
/public_html/del3/ez/3
/public_html/del3/ez/3/
/del3/ez/3
del3/ez/3
/ez/3
ez/3
- Скрипт продолжает висеть :mad::mad::mad:
 
Заработало

Спасибо за идею, скрипт заработал, скидываю рабочий код скрипта
Удалил индексы в 900 доменах на фтп. Пример files_to_delete.txt
www/site.ru/index.html
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    = 'IP адрес FTP';
// устанавливаем соединение 
$conn_id = ftp_connect($ftp_server); 
// логинимся 
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 
ftp_pasv($conn_id, true); 
$pathes = file('files_to_delete.txt'); 
foreach ($pathes as $path) { 
    $path = trim($path); 
    ftp_rmdirr($path, $conn_id); 
} 
ftp_close($conn_id); 
function ftp_rmdirr($path, $handle) { 
    if (!(@ftp_rmdir($handle, $path) || @ftp_delete($handle, $path))) 
        { 
        $list = ftp_nlist($handle, $path); 
        if (!empty($list)) 
            foreach($list as $value) 
                ftp_rmdirr($value, $handle); 
        } 
    @ftp_rmdir($handle, $path); 
}
?>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху