我的 API 處理器以請求中“type”關鍵字指定的幾種格式之一回傳資料。例如,我可以使用以下方法呼叫 JSON 標頭,但這不適用于 XML。有沒有辦法在不產生錯誤的情況下呼叫它?
<?PHP
if($_REQUEST['type'] == "XML")
{
header ("Content-Type:text/xml");
}
標題指定中沒有空格。稍后,我使用 PHP 的 dom 類來制定 XML。這看起來像這樣
$dom = new DOMDocument("1.0", 'utf-8');
$root = $dom->createElement("Data");
$dom->appendChild($root);
if(!empty($Error))
{
$Er = $dom->createElement("Errors");
$root->appendChild($Er);
foreach($Error as $value)
{
$key = "Error";
$Child = $dom->createElement($key);
$Child = $Er->appendChild($Child);
$data = $dom->createTextNode($value);
$data = $Child->appendChild($data);
}
}
else
{
foreach($XMLItems as $key => $value)
{
$key = $dom->createElement($key);
$root->appendChild($key);
$variable = $dom->createTextNode($value);
$key->appendChild($variable);
}
}
$dom->preserveWhiteSpace = FALSE;
$dom->formatOutput = TRUE;
echo $dom->saveXML();
解決方案:按照 aynber 的建議,我在這里解決問題的方法是消除 PHP 中的任何空白行以及任何包含。我消除了關閉 PHP 標記和這些包含以及主檔案中的額外行。這消除了檔案頂部的兩個空行,允許我插入 XML 標頭。
uj5u.com熱心網友回復:
"XML Parsing Error: XML or text declaration not at start of entity"意味著在您的 XML 輸出的開頭某處,有一個不應存在的空格或其他字符。有幾個地方可以檢查:
- 每個 PHP 檔案的開頭。確保之前沒有空格、換行符或不可見字符
<?php - 任何你突破和回到 PHP 塊的地方。那里的任何東西都會被發送到瀏覽器,即使它是空白。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/476549.html
