PHP+;Curl,获取远程文件并使用相同的头提供服务

PHP+;Curl,获取远程文件并使用相同的头提供服务,php,curl,http-headers,Php,Curl,Http Headers,我需要一个php脚本,它通过get请求接受URL,我希望它发送一个URL请求,发送访问者使用的相同标题,然后使用服务器发送的相同标题返回文件 请求是 PHP脚本使用Curl请求发送与发送到脚本的用户浏览器相同的标题(例如浏览器名称) 然后,数据被发送到用户浏览器,其标题与Google发送到脚本的标题相同(例如缓存、ttl等)。好的,您需要设置curloptcurlopt\u标题设置以及curlopt\u RETURNTRANSFER设置。但这将返回一个字符串,其标题位于正文顶部。然后,您可以使用

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

请求是 PHP脚本使用Curl请求发送与发送到脚本的用户浏览器相同的标题(例如浏览器名称)
然后,数据被发送到用户浏览器,其标题与Google发送到脚本的标题相同(例如缓存、ttl等)。

好的,您需要设置curlopt
curlopt\u标题
设置以及
curlopt\u 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;

现在,请注意,并非所有的头都应该转发(例如
服务器:
头)。。。我将留给您构建一个健全性检查函数来去除未转发的头…

好的,您需要设置curlopt
curlopt\u头
设置以及
curlopt\u 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;
现在,请注意,并非所有的头都应该转发(例如
服务器:
头)。。。我将留给您构建一个健全性检查函数来去除未转发的头