当前位置:  开发笔记 > 编程语言 > 正文

使用PHP时如何获取FTP错误

如何解决《使用PHP时如何获取FTP错误》经验,为你挑选了3个好方法。

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

小智.. 33

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



1> 小智..:

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


这对我来说总是空的.我的问题是`ftp_put`,不`ftp_rename`,所以我不知道这是在OP完全相关.对我来说,修复是在`ftp_put`之前调用`ftp_pasv`.我使用的是PHP 5.5.9的Ubuntu 14.04.

2> FlySwat..:

在这里查看FTP API:

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

除了真或假,似乎没有办法得到任何东西.

但是,您可以使用ftp_raw发送原始RENAME命令,然后解析返回的消息.



3> 小智..:

我做的事情如下:

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

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有