2006年05月10日

BlogWriteで過去記事が取得できない その後

結論から書くと取得できるようになった。

BlogWriteではき出すmetaWeblog.gotRecentPosts.xmlを見るとEUC-JPで書かれているのが問題で、これをUTF-8に変更できれば、取得できる気がする。そこでWordPressのPHPコードを眺めてみた。

ちなみに私はXML-RPCの知識やPHPの知識はまったくない。多少プログラミングの経験があるだけで、あとは上記の勘が働いただけだ。したがってこの方法をまねて何かあってもまったく責任もてません。PHPの知識もなく、なんとなくコードを眺めて直してみたら動いただけなのだ。

修正対象はwp-includesにあるclass-IXR.phpである。元のコードは以下の通り、

    function output($xml) {
        $xml = '<?xml version="1.0"?>'."\n".$xml;
        $length = strlen($xml);
        header('Connection: close');
        header('Content-Length: '.$length);
        header('Content-Type: text/xml');
        header('Date: '.date('r'));
        echo $xml;
        exit;
    }

これを以下のように修正する。

    function output($xml) {
        $xml = '<?xml version="1.0" encoding="UTF-8"?>'."\n".$xml;
        $length = strlen($xml);
        header('Connection: close');
        header('Content-Length: '.$length);
        header('Content-Type: text/xml');
        header('Date: '.date('r'));
        $encoding_tmp = detect_encoding_ja( $xml );
        $xml = mb_convert_encoding( $xml, 'UTF-8', $encoding_tmp );
        echo $xml;
        exit;
    }

 

detect_encoding_jaについてはこちらを参照
posted by RION at 18:45 | Comment(0) | TrackBack(0) | WordPress このエントリーを含むはてなブックマーク
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。