Intereting Posts
Использование другой таблицы для проверки подлинности в Laravel Изменение цвета диаграммы диаграммы Google, когда ввод таблицы данных поступает из данных JSON с сервера CURL с IP-адресом Spoof Создание простого события календаря Google в PHP Есть ли какая-либо встроенная функция PHP, которая генерирует встроенное исключение? Почему пустой ожидает T_PAAMAYIM_NEKUDOTAYIM, когда задана не переменная? MySQL INSERT else if exists UPDATE Как получить данные с одной php-страницы с помощью ajax и передать ее на другую php-страницу, используя ajax Алгоритм рекурсивного двоичного дерева PHP Проверка Javascript и проверка PHP? WooCommerce – включение класса налога с нулевым курсом для определенных пользовательских ролей обновление $ _POST и переход на php через jquery без отправки CRUD Laravel 5 как связать с уничтожением контроллера ресурсов? Как передать значение переменной JavaScript в PHP? Как установить мыло атрибута mustUnderstand в php?

Как получить ошибку FTP при использовании PHP

У меня есть сценарий, который регистрируется на удаленном сервере и пытается переименовать файлы, используя PHP.

В настоящее время код выглядит примерно так: веб-сайт php.net:

if (ftp_rename($conn_id, $old_file, $new_file)) { echo "successfully renamed $old_file to $new_file\n"; } else { echo "There was a problem while renaming $old_file to $new_file\n"; } 

но … в чем была ошибка? Разрешения, нет такой директории, диск заполнен?

Как я могу заставить PHP вернуть ошибку FTP? Что-то вроде этого:

 echo "There was a problem while renaming $old_file to $new_file: the server says $error_message\n"; 

Посмотрите API FTP здесь:

http://us.php.net/manual/en/function.ftp-rename.php

Кажется, нет никакого способа получить что-либо, кроме истинного или ложного.

Однако вы можете использовать ftp_raw для отправки необработанной команды RENAME, а затем проанализировать возвращаемое сообщение.

Вы можете использовать error_get_last (), если возвращаемое значение false.

Я делаю что-то вроде:

 $trackErrors = ini_get('track_errors'); ini_set('track_errors', 1); if (!@ftp_put($my_ftp_conn_id, $tmpRemoteFileName, $localFileName, FTP_BINARY)) { // error message is now in $php_errormsg $msg = $php_errormsg; ini_set('track_errors', $trackErrors); throw new Exception($msg); } ini_set('track_errors', $trackErrors);