我有以下代码:
$s = file_get_contents(someurl);
响应是一个XML,但由于某种原因,它被附加并以一个奇怪的符号作为前缀:
� <?xml version="1.0" encoding="utf-8"?>
<Response>
</Response>
�
我尝试了不同类型的编码,但没有运气。
奇怪的是我在本地与wamp一起工作,但在我的Nginx + PHP-FPM上,它正常工作。 *也许是netbeans问题?
运行:
mb_detect_encoding($str)
on wamp return UTF-8和NginX(响应正常)是:ASCII .... 我错过了什么?
答案 0 :(得分:0)
通过'响应',你的意思是来自file_get_contents函数的结果,读入$ s?
假设是这种情况,可能是发送对'someurl'URL的响应的服务器正在发送一个HTTP头,该头正在改变php试图读取结果的编码,导致这种奇怪
您可以使用$ http_response_header,如下所述:
http://www.php.net/manual/en/reserved.variables.httpresponseheader.php
找出与网址响应一起发送的http标头,以尝试进一步诊断问题。