PHP包括留下隐形角色足迹

时间:2015-05-25 21:40:49

标签: php json include echo

我正在使用PHP在我的专用服务器上设置游戏服务器,我遇到了这个问题。我有一个脚本,我运行以使游戏状态为JSON。

为了节省带宽和处理时间,我决定在更新脚本上,我想在更新服务器后直接运行相同的脚本,所以我只是包含它:

include "{$_SERVER["DOCUMENT_ROOT"]}/game/get/get_session_info.php";

这确实有效,但问题是这个include语句在该脚本的输出之前插入一个不可见的字符,使其无法解析为JSON。

我知道它来自include,因为对于我放入脚本的每个包含,都会插入其中一个不可见的字符。

如果我直接从其URL运行该脚本,则长度为8014;如果我从更新脚本运行它,则长度为8015。

如何防止PHP插入该额外字符,或者运行脚本并以不同方式返回其结果以便不会发生这种情况?

注意:

  • 更新脚本不会回显任何内容
  • get_session_info.php中唯一的回音是echo trim(json_encode($game));

以下是更新脚本中字符串的开头:

  

{ “状态”:2 “玩家”:4 “LOC1”: “15,25,35”,

在HEX中:

  

FEFF 7b227374617465223a322c22706c6179657273223a342c226c6f6331223a2231352c32352c3335222c

来自get_session_info.php的相同字符串:

  

{ “状态”:2 “玩家”:4 “LOC1”: “15,25,35”,

在HEX中:

  

7b227374617465223a322c22706c6179657273223a342c226c6f6331223a2231352c32352c3335222c

它似乎是为每个包含插入feff(除了包含我的mysqli_connect的那个,实际上......)。

1 个答案:

答案 0 :(得分:1)

它不是生成隐形字符的include,但很可能是您包含的文件。检查该文件中PHP范围之外的空格。