使用 PHP 时如何获取 FTP 错误

2022-08-30 15:54:54

我有一个脚本,它登录到远程服务器并尝试使用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";

答案 1

如果返回值为 false,则可以使用 error_get_last()。


答案 2

我正在做这样的事情:

$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);

编辑:

请注意,$php_errormsg 从 PHP 7 开始被弃用。

请改用 error_get_last()。

查看@Sascha施密特的答案


推荐