2010-06-28 64 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