php, curl, заголовки и тип контента - PullRequest
2 голосов
/ 10 ноября 2010

У меня возникли проблемы при работе с curl и заголовками, возвращаемыми серверами.

1) Мой php-файл на my_website.com/index.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;
?>

php-файл на my_content_server.com/index.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 Ответ

3 голосов
/ 10 ноября 2010

Вставить перед 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...