我已經簡單地抓住後面的HTTP基本身份驗證和URL下面的PHP代碼重新成爲它:額外的內容
<?PHP
header("Content-Type: text/xml");
$username = "username";
$password = "password";
$url = "http://s6.voscast.com:7158/admin.cgi?mode=viewxml";
$context = stream_context_create(array(
'http' => array (
'method' => "GET",
'header' => "Authorization: Basic ".base64_encode($username.":".$password)."\r\n".
"User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.04 Chromium/14.0.835.202 Chrome/14.0.835.202 Safari/535.1"
)
));
print file_get_contents($url, false, $context);
?>
這工作沒有任何問題,在本地對我的Linux Mint的11機(訴5.3.5),但其運行5.2.14客戶端的另一臺Linux服務器上失敗:
好像它試圖驗證XML,這是完全不必要的。有沒有一種方法可以禁用此功能或進一步調查哪些問題出在哪裏?
當我看着響應的來源,我看到以下內容:
未能打開流:連接在/家庭/ livshin /的public_html /可溼性粉劑內容/上傳/ _radio/songinfo拒絕在線.PHP
它的正常工作本地,但在網上失敗?我怎樣才能進一步調試呢?
您是否在瀏覽器中查看了頁面的源代碼,以查看還有哪些內容正在追加?無論哪種方式,除非您實際輸出有效的xml,否則您將無法禁用該錯誤。 –
編輯我的問題,並在響應中發生錯誤。看起來'file_get_contents'出於某種原因在線失敗。在線服務器和我的本地計算機有什麼區別? –
如果您向瀏覽器發送內容並將其聲明爲XML,則會嘗試將其作爲XML處理。您應該確保發送有效的XML,讓瀏覽器使用「text/plain」MIME類型將其顯示爲文本,或讓瀏覽器使用「Content-Disposition」下載文件。 – millimoose