以前知道file_exists不能检查远程文件是否存在,但不知道如何检查远程文件是否存在,
今天在看php信息研究中心博客的时候发现一个函数get_headers
原文在这里:
如何检查某个远程文件是否存在
get_headers(php5) — 取得服务器响应一个 http 请求所发送的所有标头
get_headers() 返回一个数组,包含有服务器响应一个 http 请求所发送的标头。如果失败则返回 false 并发出一条 e_warning 级别的错误信息。
如果将可选的 format 参数设为 1,则 get_headers() 会解析相应的信息并设定数组的键名。
返回类似
array (
[0] => http/1.1 200 ok
[date] => sat, 29 may 2004 12:28:14 gmt
[server] => apache/1.3.27 (unix) (red-hat/linux)
[last-modified] => wed, 08 jan 2003 23:11:55 gmt
[etag] => 3f80f-1b6-3e1cb03b
[accept-ranges] => bytes
[content-length] => 438
[connection] => close
[content-type] => text/html
)
原文作者用判断是否返回数组的方式我感觉不妥
因为http文件状态可能不是 200 而是其他
因为我测试了一下我的网站上其实并不存在的东西,返回的是页面状态应该404 不存在 但原作者的函数依然返回true
实际上应该根据返回的页面状态来判断