[英]PHP DomDocument, DomXPath encoding issue
我似乎無法弄清來自wordpress提要的編碼問題。
我正在使用DOMDocument-> load加載我的提要,但后來做了一個file_get_contents,現在使用-> XMLload具有相同的結果。 我做了XMLload,因此可以根據需要操縱提要。
我要尋找的正確輸出是- ' £
。 如果我只是從Xpath查詢中回顯,則會得到- ‘ £
。 如果我用utf8_decode回顯,則得到- ? £
- ? £
。 好多了,但問號應該是撇號。
如果在加載DomDocument的每個節點時進行遍歷,則會得到正確的輸出。 因此,似乎XPath中的處理方式不正確。
任何想法?
提要是http://shredeasy.com/blog/category/news/feed
這是被調用的函數:
function getPostsInCategory($feed=NULL){
if(is_null($feed)){ echo "Wrong Usage. Need a valid Category Feed. Most likely from getCategories()."; return false; }
$feedx = file_get_contents($feed);
$xml = new DOMDocument();
$xml->loadXML($feedx);
//$this->showDOMNode($xml);
//$xml->load($feed);
$xpath = new DomXPath($xml);
$xpath->registerNamespace("content", "http://web.resource.org/rss/1.0/modules/content/");
$cat = array();
foreach($xml->getElementsByTagName('item') as $c){
$elements = array();
$elements["title"] = $xpath->query("title", $c)->item(0)->nodeValue;
echo utf8_decode($elements["title"]);
我已經嘗試了好幾個小時才能弄清楚這個問題,但我總是回想起錯誤的事情。
謝謝您的幫助!
沒錯,似乎撇號正在變成問號...。天哪! 我不知道這是否是唯一的問題。
回顯的字符串以UTF-8編碼。
htmlspecialchars
並將第三個參數設置為“ UTF-8”。 iconv
和mb_convert_encoding
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.