Twitter APIから返ってきたxmlを、PHP XML Libraryを通して配列に格納しようとしていますが、日本語部分が???となってしまい困っています。助けて頂けませんか。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/05/10 09:30:35
  • 終了:2007/05/17 09:35:02

回答(1件)

id:Kiske No.1

mitz回答回数39ベストアンサー獲得回数22007/05/10 14:14:44

ポイント60pt

http://twitter.com/

URLはダミーです。

PHP内部の文字コードがUTF-8ならば下記コードで問題無く出力されました。

$file =  'http://twitter.com/statuses/user_timeline/screenname.xml';
$xml = file_get_contents($file);
$data = XML_unserialize($xml);
var_dump($data);

内部エンコードがUTF-8でないのならfile_get_contentsした文字列に対して

mb_convert_encodingしてやれば大丈夫なんじゃないでしょうか。

$file =  'http://twitter.com/statuses/user_timeline/screenname.xml';
$xml = file_get_contents($file);
$xml = mb_convert_encoding($xml, "UTF-8");
$data = XML_unserialize($xml);
var_dump($data);
id:subtonic

ありがとうございます。

PHP内部の文字コードはUTF-8にしているのですが、うまくいかないようです。mb_convert_encodingを試してもアウトでした。同じものをphp5で処理すれば文字化けはおこらないのですが、php4だとだめみたいです。

2007/05/10 14:26:44
  • id:toomo
    同じ現象でスタックしていましたが、
    PHP XML Library内の以下の行に文字コード指定すると回避できました。

    これを------------------------------------

    function XML(){
    $this->parser = &xml_parser_create();
    xml_parser_set_option(&$this->parser, XML_OPTION_CASE_FOLDING, false);
    xml_set_object(&$this->parser, &$this);
    xml_set_element_handler(&$this->parser, 'open','close');
    xml_set_character_data_handler(&$this->parser, 'data');
    }

    これに変更-------------------------------

    function XML(){
    $this->parser = &xml_parser_create("UTF-8");
    xml_parser_set_option(&$this->parser, XML_OPTION_CASE_FOLDING, false);
    xml_set_object(&$this->parser, &$this);
    xml_set_element_handler(&$this->parser, 'open','close');
    xml_set_character_data_handler(&$this->parser, 'data');
    }


    ちなみに、当方の環境は以下の通りです

    OS: RHEL3.0
    PHP: 4.3.9
    使用文字コード: UTF-8

  • id:subtonic
    返事が返せておりませんでした、申し訳ありません!
    大変有益な情報をありがとうございました。

この質問への反応(ブックマークコメント)

トラックバック

  • Twitterログまとめサイトつくりました Twitterログまとめ sutara_lumpurよし…、今日から勉強再開ですよ! まずは jQuery の復習から…。 *Tw*linkduck75@sutara_lumpur こっちはかなり、作りかけのプログ
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません