[英]php file_get_content wrong response encoding for xml
我有以下代碼:
$s = file_get_contents(someurl);
響應是XML,但由於某種原因,它以奇怪的符號附加和前綴:
� <?xml version="1.0" encoding="utf-8"?>
<Response>
</Response>
�
我嘗試了不同類型的編碼,但沒有運氣。
奇怪的是我正在使用wamp在本地工作,但是在我的Nginx + PHP-FPM上它可以正常工作。 *也許是netbeans問題?
運行:
mb_detect_encoding($str)
在wamp返回UTF-8和在NginX(響應正常)上是:ASCII ....我缺少什么?
“響應”是指file_get_contents函數的結果(讀入$ s)嗎?
假設是這種情況,則可能是正在將響應發送到“ someurl” URL的服務器正在發送HTTP標頭,該標頭正在更改php試圖讀取結果的編碼,從而導致這種怪異現象。
您可以按照以下說明使用$ http_response_header:
http://www.php.net/manual/en/reserved.variables.httpresponseheader.php
找出與URL響應一起發送的http標頭,以嘗試進一步診斷問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.