将 fopen 与 HTTP 身份验证背后的文件一起使用

问题描述

我正在整理我的错误日志。当我使用 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...
}