電子書籍の厳選無料作品が豊富!

php5でRSSリーダーを作っています。
simple_xml_load_fileを使ってRSSを読み込んでいるのですが、サイトによって、読み込みの時点でエラーが出てしまいます。

『Warning: simplexml_load_file() [function.simplexml-load-file]: input conversion failed due to input error, bytes 0x87 0x99 0x81 0x4B』

上記のようなエラーが出ます。エラーの出たRSSの文字コードがShift_JISだったので文字コードさえ変換できればうまくいくと思うのですが、simple_xml_load_fileする前に文字コード変換ってできるのでしょうか?ご存知の方いましたらお願いします。

A 回答 (1件)

他のサイトから読み込むのでしょうから、


いったんfileとかで読込み
mb_convert_encoding
とかして後結合して
simplexml_load_string
で読み込むとかすればいいのでは
    • good
    • 0
この回答へのお礼

あ、なるほど「simplexml_load_string」なんてものがあったんですね。
以下のようにfile_get_contentsで文字列として読み込んでから、mb_convert_encodingで文字コード変換して、simplexml_load_stringできちんとパースできました。これでなんとか行けそうです。本当にありがとうございました。

$xmlstr = file_get_contents($rss);
mb_convert_encoding($xmlstr,"UTF-8");
$xml = simplexml_load_string($xmlstr);

お礼日時:2005/12/04 22:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!