0

ワードプレスフィードからのエンコードに問題があり、理解できないようです。

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"]);

私は何時間もこれを理解しようとしてきました、そして私は間違ったことに戻って回り続けます。

助けてくれてありがとう!

ご存知のとおり、アポストロフィが疑問符に変わっているようです。それが唯一の問題かどうかはわかりません。

4

1 に答える 1

1

エコーされる文字列はUTF-8でエンコードされます。

  • ページがUTF-8でエンコードされている場合は、エコーするだけhtmlspecialcharsで、3番目の引数を「UTF-8」に設定して呼び出すことができます。
  • それ以外の場合は、Webページが使用しているエンコーディングに変換する前に変換する必要があります。iconvおよびを参照してくださいmb_convert_encoding
于 2010-06-28T16:51:28.690 に答える