RSSのXMLロードで失敗してしまう
RSSのデータを取得する、という処理を行いたいのですが、
文字コードの件でひっかかってしまっているようで
なかなか前に進むことができません。
************
// RSSの内容を取得する
$rss_text = file_get_contents(※RSSのフィードURL);
// RSSの文字エンコーディングを変換→再変換
$rss_text = mb_convert_encoding($rss_text, 'SJIS', 'UTF-8');
$rss_text = mb_convert_encoding($rss_text, 'UTF-8', 'SJIS');
$rss_text = preg_replace('/[\x00-\x1f]/', '', $rss_text);
// RSSをパースする
$rss_xml = new SimpleXMLElement($rss_text);
if ($rss_xml)
{
// XML解析に成功した場合
// SimpleXMLElementオブジェクトからデータを取得
$items = $rss_xml->item;
foreach($items as $item)
{
echo 'ID:'. $item->guid. '<br />';
echo 'リンク:'. $item->link. '<br />';
echo '日付:'. $item->pubDate. '<br />';
echo 'タイトル:'. $item->title. '<br />';
echo '本文:'. $item->description. '<br />';
}
}
************
こういったコードを組んでいるのですが、現状では
Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 1: parser error : attributes construct error in...
Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in...
Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 1: parser error : Couldn't find end of Start Tag rss line 1 in...
Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in...
Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 1: parser error : Extra content at the end of the document in...
Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in...
このようなエラーが表示されてしまいます。
自分なりに文字コードを処理しているつもりではあるのですが、
他にも何かしなければならないことがあるのでしょうか?
どうぞ知恵を貸していただければと思います。
よろしくお願いいたします。
お礼
なるほど、そういう意味のエラーなんですね。 ありがとうございます。 試行錯誤でやっていたので、一度きれいにしてからやり直してみました。 すると、また別問題で止まっています。 別の質問として掲載します。 Liteの情報もありがとうございました。