php,curl,headers和content-type

时间:2010-11-10 06:17:15

标签: php curl http-headers

我在使用curl和服务器返回的标头时遇到了一些麻烦。

1)my_website.com/index.php上的我的php文件看起来像这样(修剪版本):

<?php

$url = 'http://my_content_server.com/index.php';

//Open connection
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);

echo $result;
?>

my_content_server.com/index.php上的php文件如下所示:

<?php
header("HTTP/1.0 404 Not Found - Archive Empty");
echo "Some content > 600 words to make chrome/IE happy......";
?>

我希望当我访问my_website.com/index.php时,我应该得到404,但这不会发生。

我做错了什么?

2)基本上我想要达到的目标是:

my_content_server.com/index.php将决定内容类型并发送相应的标头,my_website.com / index.php应该只向浏览器发送相同的内容类型和其他标头(以及实际数据)。但似乎my_website.com/index.php正在编写自己的标题? (或者我可能不理解正常工作)。

的问候, JP

1 个答案:

答案 0 :(得分:3)

curl_exec()之前插入:

curl_setopt($ch,CURLOPT_HEADER,true);

不仅仅是echo结果,还可以将标题转发给客户端:

list($headers,$content) = explode("\r\n\r\n",$result,2);
foreach (explode("\r\n",$headers) as $hdr)
    header($hdr);
echo $content;