Здравствуйте! Написал 2 скрипта: 1-й посылает запросы, 2-й на них отвечает.
В ответе, который строит скрипт номер 2, я хочу удостоверится, что заголовок Content-Type ответа установлен верно, путем вот написания вот такого учатска кода:
//Упрощенная версия скрипта номер 2
eader("Content-Type:text/html"); // Не выведится в цикле ниже
foreach (getallheaders() as $name => $value) {
echo "<br> $name: $value";
}
Вот 2 скрипта целиком:
1-й :
<?php
$c = curl_init("http://asd/newFolder/formhandler.php");
curl_setopt($c, CURLOPT_HTTPHEADER, array("Accept:application/json"));
curl_exec($c);
?>
2-й:
<?php
$formats = array("application/json", "text/html");
$default_format = "application/json";
if($_SERVER["HTTP_ACCEPT"]){
if(in_array($_SERVER["HTTP_ACCEPT"], $formats)){
$format = $_SERVER["HTTP_ACCEPT"];
}else{
print "Клиент просит неподдерживаемый формат!";
exit();
}
}
else{
$format = $default_format;
}
header("Content-Type:$format");
//Строим тело ответа
if($format == "application/json"){
print "Клиенту нужен json";
}
else if($format == "text/html"){
print <<<HTML
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Манипулирование файлами</title>
</head>
<body>
<p>Клиенту нужен HTML</p>
</body>
</html>
HTML;
}
//ТУТ НЕПОНЯТНО!
foreach (getallheaders() as $name => $value) {
echo "<br> $name: $value";
}
?>
Результат выполнения скрипта 1:
Клиенту нужен json
Host: asd
Accept: application/json
Всем заранее спасибо!