2017-07-13 65 views
0

我使用下面的類:PHP/XML亂碼

class rss { 
    public function rssReader($rssLocalSource,$rssSetLimit){ 
     $rss = new DOMDocument(); 
     $rss->load($rssLocalSource); 
     $feed = array(); 

     $countMaxArticles = array(); 
     foreach ($rss->getElementsByTagName('item') as $node) { 
      $item = array ( 
       'title' => $node->getElementsByTagName('title')->item(0)->nodeValue, 
       'link' => $node->getElementsByTagName('link')->item(0)->nodeValue, 
       ); 
       $countMaxArticles[] = 1; 
       array_push($feed, $item); 
      } 
      $totalNumArticles = count($countMaxArticles); 
      $setRssLimit = min($totalNumArticles,$rssSetLimit); 

      echo '<div class="rss-links">'; 
      echo '<ul>'; 
      for($x=0;$x<$setRssLimit;$x++) { 
       //$title = str_replace(' & ', ' &amp; ', $feed[$x]['title']); 
       $title = utf8_encode ($feed[$x]['title']); 
       $link = $feed[$x]['link']; 
       echo '<li><a target="_blank" href="'.$link.'">'.$title.'</a></li>'; 
      } 
      echo '</ul>'; 
      echo '</div>'; 
     } 
} 

上面的代碼基本上看報紙的頭條新聞的標題和輸出的鏈接。

XML文件中的文本不是亂碼。儘管當上面的代碼讀取XML文件時,文本是亂碼

例如,標題

銀行需要 '混合方式Blockchain技術':波紋的馬庫斯特雷徹

被放出來作爲

銀行需要一個¢Â€Â~Hybrid方針Blockchain Technology’:Ripple’s馬庫斯Treacher

+0

指定你的問題,謝謝。 – Deliaz

+0

您正在將UTF8編碼爲Latin1到UTF-8,不這樣做。 – ThW

+0

@ThW我如何解決它? – JoeyBall

回答

0

我解決了它通過更改

$title = utf8_encode ($feed[$x]['title']); 

$title = iconv('UTF-8', 'ASCII//TRANSLIT', $feed[$x]['title']);