【问题标题】:Equivalent is_file() function for URLs?URL 的等效 is_file() 函数?
【发布时间】:2010-09-20 02:42:01
【问题描述】:

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

我仍在翻阅 PHP 手册,以查看哪些文件函数(如果有)实际上可以与远程 URL 一起使用。当我找到更多细节时,我会编辑我的帖子,但如果有人已经走过这条路,请随时加入。

【问题讨论】:

    标签: php


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        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);
        ?>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-04-26
          • 1970-01-01
          • 1970-01-01
          • 2021-06-10
          • 1970-01-01
          • 2020-09-23
          • 2013-05-23
          • 1970-01-01
          相关资源
          最近更新 更多