等效的is_file()函数用于URL?

3
什么是检查网址是否指向有效文件(不返回404/301等)的最佳方式?我有一个可以在页面上加载特定.js文件的脚本,但我需要一种验证每个接收到的URL是否指向有效文件的方法。
我仍在研究PHP手册,以确定哪些文件函数(如果有)实际上可以与远程URL一起使用。随着发现更多细节,我将编辑我的帖子。如果已经有人走过这条路,请随时发表评论。
3个回答

5

file_get_contents有点过度,因为只需要HTTP头就可以做出决定,所以你需要使用curl来实现:

<?php
// create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);

// grab URL and pass it to the browser
curl_exec($ch);

// close cURL resource, and free up system resources
curl_close($ch);
?>

0

其中一种方法是请求URL并获得状态码为200的响应,除此之外,实际上没有更好的方法,因为服务器可以按照其喜欢的方式处理请求(包括为存在但由于多种原因而无法访问的文件提供其他状态码)。


0
如果您的服务器没有启用fopen包装器(任何具有良好安全性的服务器都不会启用),那么您将不得不使用CURL函数

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接