簡體   English   中英

PHP DomDocument,DomXPath編碼問題

[英]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編碼。

  • 如果您的頁面是使用UTF-8編碼的,則只需回顯它,就可以調用htmlspecialchars並將第三個參數設置為“ UTF-8”。
  • 否則,您必須先將其轉換為網頁所使用的編碼。 請參閱iconvmb_convert_encoding

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM