在PHP中将标头设置为HTTP状态时解析错误

时间:2011-12-22 13:17:58

标签: php

我无法弄清楚出了什么问题但是在下面这个简单的PHP中,我得到了解析错误。

我收到此错误

Parse error: syntax error, unexpected T_STRING in E:\Server\htdocs\myframework\library\api\rest-test\index.php on line 3

关于此代码

<?php
header('HTTP/1.1 404 Not Found'); 
header('Content-type: application/json');

$data = 'testing dgdg dfgdf gdf';// my code that returns the appropriate data;

echo json_encode($data);

?>

但是当我为header('HTTP/1.1 404 Not Found');换出header('HTTP/1.1 200 OK');时,错误就会消失。请帮我理解这个。使用XAMPP在Windows上进行测试


分辨

我的原始代码在header('HTTP/1.1 404 Not Found');行的末尾有一个空格,删除了该空格,现在一切正常。

3 个答案:

答案 0 :(得分:2)

首先,您应该考虑使用header($_SERVER["SERVER_PROTOCOL"] . " 404 Not Found");而不是header('HTTP/1.1 404 Not Found');,因为您的基础服务器可能正在使用不同的HTTP协议,这将使您不必在以后更新它。

其次,我怀疑问题源于您要添加到该部分的内容标题。请尝试删除header('Content-type: application/json');,看看它是否可以解决您的问题。

答案 1 :(得分:1)

都能跟得上; that testcase is fine

错误来自您的原始代码,而不是您的测试用例,并且您无法在测试用例中重现该问题。所以我们无法识别它......

答案 2 :(得分:0)

如果您使用FCGI,可以将404行更改为header("Status: 404 Not Found");。也许这有帮助。