【问题标题】:PHP + Curl, get remote file and serve with same headersPHP + Curl,获取远程文件并使用相同的标头提供服务
【发布时间】:2010-08-18 16:11:37
【问题描述】:

我需要一个通过 get 请求接受 URL 的 php 脚本,我希望它发送 URL 请求,发送访问者使用的相同标头,然后使用服务器发送的相同标头返回文件。

例如。请求是http://Google.com/ PHP 脚本使用 Curl 请求 http://Google.com/ 发送与发送给脚本的用户浏览器相同的标头(例如浏览器名称) 然后将数据发送到用户的浏览器,并使用 Google 发送到脚本的相同标头(例如缓存、ttl 等)。

【问题讨论】:

    标签: php curl http-headers


    【解决方案1】:

    好吧,您需要设置 curlopt CURLOPT_HEADER 设置以及 CURLOPT_RETURNTRANSFER 设置。但这将返回一个带有标题在正文顶部的字符串。然后,您可以将它们拆分为:

    $response = curl_exec($ch);
    list ($headerString, $body) = explode("\r\n\r\n", $response, 2);
    $headers = explode("\r\n", $headerString);
    foreach ($headers as $header) {
        header($header);
    }
    echo $body;
    

    现在,请注意,并非所有标头都应被转发(例如 Server: 标头)...我将留给您构建一个健全性检查功能以去除未转发的标头...

    【讨论】:

      猜你喜欢
      • 2012-02-13
      • 2012-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-17
      • 1970-01-01
      相关资源
      最近更新 更多