从this question开始,我正在使用其中一个答案中提供的代码。
以下是代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
$server_url = "http://www.nfl.com/liveupdate/scorestrip/ss.json";
$options = array
(
CURLOPT_HEADER => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_TIMEOUT => 60,
CURLOPT_CONNECTTIMEOUT => 0,
CURLOPT_HTTPGET => 1
);
$service = $_GET["service"];
$request_headers = Array();
foreach($_SERVER as $i=>$val) {
if (strpos($i, 'HTTP_') === 0) {
$name = str_replace(array('HTTP_', '_'), array('', '-'), $i);
if ($name != 'HOST')
{
$request_headers[] = "{$name}: {$val}";
}
}
}
$options[CURLOPT_HTTPHEADER] = $request_headers;
switch (strtolower($_SERVER["REQUEST_METHOD"]))
{
case "post":
$options[CURLOPT_POST] = true;
$url = "{$server_url}/services/".$service;
$options[CURLOPT_POSTFIELDS] = file_get_contents("php://input");
break;
case "get":
unset($_GET["service"]);
$querystring = "";
$first = true;
foreach ($_GET as $key => $val)
{
if (!$first) $querystring .= "&";
$querystring .= $key."=".$val;
$first = false;
}
$url = "{$server_url}/services/".$service."?".$querystring;
break;
default:
throw new Exception("Unsupported request method.");
break;
}
$options[CURLOPT_URL] = $url;
$curl_handle = curl_init();
curl_setopt_array($curl_handle,$options);
$server_output = curl_exec($curl_handle);
curl_close($curl_handle);
$response = explode("\r\n\r\n",$server_output);
$headers = explode("\r\n",$response[0]);
foreach ($headers as $header)
{
if ( !preg_match(';^transfer-encoding:;ui', Trim($header)) )
{
header($header);
}
}
echo $response[1];
?>
</body>
</html>
不幸的是我收到了以下错误,为什么会这样?:
警告:无法修改标头信息 - 已发送的标头 (输出始于 C:\ inetpub \ vhosts \ allencoded.com \ httpdocs \ test.php:12)in 第88行的C:\ inetpub \ vhosts \ allencoded.com \ httpdocs \ test.php警告: 无法修改标头信息 - 已经发送的标头(输出 从C:\ inetpub \ vhosts \ allencoded.com \ httpdocs \ test.php:12)开始 第88行的C:\ inetpub \ vhosts \ allencoded.com \ httpdocs \ test.php警告: 无法修改标头信息 - 已经发送的标头(输出 从C:\ inetpub \ vhosts \ allencoded.com \ httpdocs \ test.php:12)开始 第88行的C:\ inetpub \ vhosts \ allencoded.com \ httpdocs \ test.php警告: 无法修改标头信息 - 已经发送的标头(输出 从C:\ inetpub \ vhosts \ allencoded.com \ httpdocs \ test.php:12)开始 第88行的C:\ inetpub \ vhosts \ allencoded.com \ httpdocs \ test.php警告: 无法修改标头信息 - 已经发送的标头(输出 从C:\ inetpub \ vhosts \ allencoded.com \ httpdocs \ test.php:12)开始 第88行的C:\ inetpub \ vhosts \ allencoded.com \ httpdocs \ test.php警告: 无法修改标头信息 - 已经发送的标头(输出 从C:\ inetpub \ vhosts \ allencoded.com \ httpdocs \ test.php:12)开始 第88行的C:\ inetpub \ vhosts \ allencoded.com \ httpdocs \ test.php警告: 无法修改标头信息 - 已经发送的标头(输出 从C:\ inetpub \ vhosts \ allencoded.com \ httpdocs \ test.php:12)开始 第88行的C:\ inetpub \ vhosts \ allencoded.com \ httpdocs \ test.php警告: 无法修改标头信息 - 已经发送的标头(输出 从C:\ inetpub \ vhosts \ allencoded.com \ httpdocs \ test.php:12)开始 第88行的C:\ inetpub \ vhosts \ allencoded.com \ httpdocs \ test.php警告: 无法修改标头信息 - 已经发送的标头(输出 从C:\ inetpub \ vhosts \ allencoded.com \ httpdocs \ test.php:12)开始 第88行HTTP / 1.1上的C:\ inetpub \ vhosts \ allencoded.com \ httpdocs \ test.php 404 Not Found Server:Apache Content-Type:text / html; charset = iso-8859-1内容编码:gzip内容长度:224 缓存控制:max-age = 7146到期:2011年8月13日星期六22:12:11 GMT 日期:星期六,2011年8月13日20:13:05 GMT连接:keep-alive Vary: 接受编码X-Akamai-Edgescape:country_code = US
答案 0 :(得分:0)
在调用header
之前,你无法回应任何内容,所以在你的情况下它是你打开php标签之前的所有内容。
您最好的选择是在开始html
标记之前完成所有的PHP