URL的等效is_file()函数?

时间:2008-10-30 23:51:24

标签: php

检查给定网址是否指向有效文件(即不返回404/301 /等)的最佳方法是什么?我有一个脚本会在页面上加载某些.js文件,但是我需要一种方法来验证它接收到的每个URL都指向一个有效的文件。

我还在浏览PHP手册,看看哪些文件函数(如果有的话)实际上可以使用远程URL。我会编辑我的帖子,因为我发现了更多细节,但是如果有人已经走了这条路,请随意加入。

3 个答案:

答案 0 :(得分: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);
?>

答案 1 :(得分:0)

一种方法是请求url并获得状态代码为200的响应,除此之外,实际上没有好办法,因为服务器可以选择处理请求但是它喜欢(包括给你存在的文件的其他状态代码,但由于多种原因您无权访问。)

答案 2 :(得分:0)

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