Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php发送/回显'';每一次需要一次_Php_Json_Iis_Special Characters_Require Once - Fatal编程技术网

php发送/回显'';每一次需要一次

php发送/回显'';每一次需要一次,php,json,iis,special-characters,require-once,Php,Json,Iis,Special Characters,Require Once,我的PHP文件向某个GET请求发送JSON结果。 问题是,我一直在客户端遇到解析错误。查看结果字符串,我发现每个结果都以几个问号(?)开头 把我的脚本一点一点地删减,我发现结果中包含一个?对于每个require,include、require\u一次或include\u一次。 奇怪的是?如果在浏览器中运行请求,则不可见。但是,将结果复制到文本编辑器中,它们就变得可见了 我的服务器是使用PHP7.1.7的IIS (简化)代码如下所示: http://s-mde/itemLookup.php?num

我的PHP文件向某个GET请求发送JSON结果。 问题是,我一直在客户端遇到解析错误。查看结果字符串,我发现每个结果都以几个问号(?)开头

把我的脚本一点一点地删减,我发现结果中包含一个?对于每个require,include、require\u一次或include\u一次。 奇怪的是?如果在浏览器中运行请求,则不可见。但是,将结果复制到文本编辑器中,它们就变得可见了

我的服务器是使用PHP7.1.7的IIS

(简化)代码如下所示:

http://s-mde/itemLookup.php?number=305475
?????[{"Typ":"I","No_":"408835","Description":"Ds Scene it? Twilight","debugCounter":96},{"Typ":"L","No_":"100773","Description":"Axe Deo Roll Diverse 50ml Ro","debugCounter":96},{"Typ":"L","No_":"410296","Description":"Axe Duschgel Africa 250ml Fl.","debugCounter":96},{"Typ":"L","No_":"102939","Description":"Axe Duschgel Alaska 250ml Fl.","debugCounter":96},{"Typ":"L","No_":"408835","Description":"Ds Scene it? Twilight","debugCounter":96},{"Typ":"L","No_":"100332","Description":"Rexona Roll On Men Sport 50ml","debugCounter":96}]
lookup.php

<?php
  include_once 'common/server.php';
  echo $srv->QueryTable(qry_ItemList);
<?php
require_once 'constants.php';
require_once 'sql/queryNAV.php';

class JSON_Server
{
    public function QueryTable($SQLTextName)
    {
        $qry_result = /*(do SQL-Query)*/;
        return json_encode($qry_result);
    }
}
$srv = new JSON_RESTServer;
。。。结果可能是这样的:

http://s-mde/itemLookup.php?number=305475
?????[{"Typ":"I","No_":"408835","Description":"Ds Scene it? Twilight","debugCounter":96},{"Typ":"L","No_":"100773","Description":"Axe Deo Roll Diverse 50ml Ro","debugCounter":96},{"Typ":"L","No_":"410296","Description":"Axe Duschgel Africa 250ml Fl.","debugCounter":96},{"Typ":"L","No_":"102939","Description":"Axe Duschgel Alaska 250ml Fl.","debugCounter":96},{"Typ":"L","No_":"408835","Description":"Ds Scene it? Twilight","debugCounter":96},{"Typ":"L","No_":"100332","Description":"Rexona Roll On Men Sport 50ml","debugCounter":96}]

你的文件编码是什么?在从PHP创建Android应用程序的JSON响应时,我也遇到过类似的问题。通过使用UTF-8、请求和响应对双方进行编码,解决了这个问题。

目前我甚至没有想过编码。请求通过Android/Volley从浏览器地址字段或Java字符串发送。响应是一个简单的“echo$ResultString”。我如何影响编码?我必须添加标题吗?我不知道您使用的是哪个IDE。我个人使用Notepad++(oldtimer-lerl)来编写PHP,我只需打开.PHP文件,转到Encoding->Encode in UTF-8并保存。请记住,在Notepad++中更改编码时,您可能会得到一些加扰字符,因此请先复制完整代码,更改编码,然后再次粘贴。解决方法:正如Mario所述,这与php源代码编码有关,但在本例中是另一种方式:我的所有文件都编码为UTF-8。我打开了它们(顺便说一句:我也使用NPP),并将编码更改为ANSI。现在,它的工作如预期。但奇怪的是,因为我使用了一个非常现代的环境:在Windows Server 2016的IIS上运行的PHP7.1.7。我认为,这种组合应该能够正确处理UTF-8(?)。不过:问题解决了,谢谢。