程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php simplexml_load_file 中文亂碼的解決方法

php simplexml_load_file 中文亂碼的解決方法

編輯:關於PHP編程

中文亂碼多半是編碼導致的我們只要調整一下輸出編碼即可解決中文亂碼問題,下面我們看simplexml_load_file中文亂碼解決辦法。

在PHP5.0 中,simplexml_load_file()是一個很好的讀取和處理XML文件的函數,但是在讀取和處理中文時會出現亂碼,經過研究發現,如果是中文內容,必須經過iconv編碼轉換,否則顯示為亂碼。

 代碼如下 復制代碼

$xml=simple_load_file('xml文件');

  foreach($xml->soft as $temp){

  echo $temp->name; //這就是軟件名稱了。 

  echo $temp->mem; //這就是軟件說明了。

}

英文正確中文亂碼,這個我估計就是編碼問題了。

後來網上找到了相關文章,如核心一句

1、如果xml的encoding與文件類型不符,立刻報錯
2、simplexml可以處理gbk的XML,即文件內容和encoding都為gbk(ANSI格式)
3、不管文件內容是什麼,處理完了,都是UTF8.


具體方法如下:

 代碼如下 復制代碼

$chname = iconv('utf-8', 'gb2312', $table->param["name"]);

實現將編碼為'utf-8'的XML文件內容轉換為 gb2312 格式的內容。

中文編碼采用gb2312格式輸出。

還有一種辦法本人沒測試過直接攤販頁面編碼轉成uft8

 代碼如下 復制代碼

header("Content-type: text/html; charset=utf-8");
//因為wordpress默認編碼是utf-8,但IE默認識別為gb2312,所以用header發一下編碼
$url="http://www.bKjia.c0m";
$xml =  simplexml_load_file($url);
//載入遠程XML文件
$title=$xml->channel->title;
//根據節點獲取博客標題(不循環)
echo $title."<br />";
//如果節點循環了,可以用foreach循環取出
foreach($xml->channel->item as $item){
 echo $item->title."<br />";
}
//循環取出文章標題

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved