问题描述
我正在整理我的错误日志。当我使用 fopen 检索 HTTP 身份验证后的文件但失败时,我收到错误消息:
fopen: Failed to open stream: No such file or directory
在使用 fopen 之前是否可以进行检查以查看是否会失败?
这是一个示例 URL:http://12345:12345@datatransfer.cj.com/datatransfer/files/products.zip
解决方法
我通过检查文件头进行身份验证来做到这一点:
$file_headers = get_headers($url);
if (!$file_headers) return "No headers found";
else if (strpos($file_headers[0],'401 Unauthorized') > -1) return "Authorization required";
else if (strpos($file_headers[0],'404 Not Found') > -1) return "404 Not Found";
else {
// now safe to use fopen...
}