2010-06-28 104 views
0

我遇到了一個WordPress編碼的問題,我似乎無法弄清楚。PHP DomDocument,DomXPath編碼問題

我正在用DOMDocument-> load加載我的feed,但後來做了一個file_get_contents,現在正在使用 - > XMLload獲得相同的結果。我做了XMLload,因此如果需要的話我可以操縱Feed。

我在找的正確輸出是- ‘ £。 如果我只是從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"]); 

我一直在試圖弄清楚這一點了幾個小時,我不斷盤旋迴錯誤的事情。

感謝您的幫助!

你知道的對,它似乎是撇號變成了問號....天啊!我不知道這是否唯一的問題。

+1

*你的頁面*的編碼是什麼?服務器/ meta元素... – 2010-06-28 16:11:22

+0

2010-06-28 16:20:38

回答

1

被回顯的字符串以UTF-8編碼。

  • 如果您的網頁是在UTF-8編碼,你可以只回聲它,可能調用htmlspecialchars設置爲「UTF-8」的第三個參數。
  • 否則,您必須先將其轉換爲您的網頁使用的任何編碼。見iconvmb_convert_encoding
+0

我的意思是回覆此問題,但是HTTPS專業版使用UTF-8作爲爭論是答案。 – 2010-07-02 23:57:07