首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 輸出 XML 必須發送正確 Header (Content-Type: text/xml)

     編輯:PHP 綜合知識

現象

直接 echo XML 字符串,瀏覽器/解析器報錯:Error: Object # has no method 'load'。明明字符串格式正確,存為 .xml 文件卻能正常解析。

根本原因

HTTP 響應缺少 Content-Type: text/xml(或 application/xml)頭部。瀏覽器默認按 text/html 解析,導致 XML 解析器無法識別,JS 庫(如 jQuery .load())拒絕處理。

一行代碼解決

<?php
// 必須在任何輸出前調用
header('Content-Type: text/xml; charset=UTF-8');

echo '<?xml version="1.0" encoding="UTF-8"?>
<sitemap>
  <loc>https://www.jb51.net/</loc>
  <lastmod>2013-01-22T11:00:18+08:00</lastmod>
</sitemap>';
exit;
?>

最佳實踐

  • 使用 DOMDocument 或 XMLWriter 生成 XML,自動處理編碼與轉義。
  • 設置 header('Content-Type: application/xml; charset=UTF-8') 更符合 RFC 7303。
  • 調試時可臨時用 text/plain 查看原始輸出。

對比表

Header適用場景備註
text/xml通用 XML,舊系統兼容RFC 3023,默認編碼 US-ASCII,**必須**指定 charset
application/xml現代 API、REST 服務RFC 7303 推薦,編碼同樣需顯式聲明
application/rss+xmlRSS Feed專用 MIME 類型
application/atom+xmlAtom Feed專用 MIME 類型
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved