我正在连接FTP并下载文件。文件名基于日期,因此10242011.csv将是脚本今天尝试下载的文件。有时文件一天不存在。我有以下代码,但我仍然收到一个php警告:
Warning: ftp_fget() [function.ftp-fget]: 10242011.csv: The system cannot find the file specified. in /home/rick/public_html/cron/main.php on line 68
以下是代码:
if (!ftp_fget($conn, $handle, $ftp_file, FTP_ASCII, 0)) {
$log[] = array('type' => 'error', 'msg' => 'Unable to download data file (' . $ftp_file . ') from ftp.');
email_fatal_error(); exit();
} else {
$log[] = array('type' => 'success', 'msg' => 'File downloaded.');
}
我知道我可以转换php warings,但我只是想知道“正确”的方式来做到这一点。任何时候你收到警告我觉得它可以解决。
答案 0 :(得分:4)
在使用ftp_fget
函数之前,您应首先检查文件是否确实存在。
您可以查看file_exists
if(file_exists($ftp_file))
{
//do the stuff with ftp_fget
}
答案 1 :(得分:2)
如果您真的不关心使用@
字符的错误,则可以内联错误。这仅适用于默认处理程序,其他记录程序仍将记录错误。
示例:
@ftp_fget(...)
即使可能发生错误,也不会抛出任何错误或警告。这里有关于此行为的SO帖子非常好: Suppress error with @ operator in PHP