こんにちは。
数日ぶりに自分のつくったサイトを見た時に
外部から呼び出しているRSSが表示されなくなっていました。
急にだったので焦りましたが
ローカルでMAMPでみたところ
バリバリのバリエラーが出ていました。
simplexml_load_file() ~~~~~ parser error
という感じでズラ〜っと表示されていました。
あっさり直ったので
直す方法と参考にしたサイトを書いていきます。
simplexml_load_file() ~~~ parser errorの対処法
パースエラーなので簡単に言えば構文エラーです。
ですが、急になったので戸惑いました。
特に文法もおかしくないし・・・。
原因を探ったところ
simplexml_load_file()でXMLを呼び出した際に
不正な文字列がありました。
ダブルクォート「“」とか。
XMLを修正すればエラーは解除しますが
今後のことを考え、PHPのコードを直しました。
【修正前のコード】
[php]
$xml = “https://hasethblog.com/feed”;
$xmlData = simplexml_load_file($xml);
$json = json_encode($xmlData);
$array = json_decode($json,TRUE);
$news_count = count($array[“channel”][“item”]);
[/php]
ネットでいろんな記事を参考にして書いたコードですが、
シンプルなコードすぎてエラーが発生したようです。
参考にしたサイトは
なんとか修正して
【修正後のコード】
[php]
$xml = “https://hasethblog.com/feed”;
$html = file_get_contents($xml);
$invalid_characters = ‘/[^\x9\xa\x20-\xD7FF\xE000-\xFFFD]/’;
$html = preg_replace($invalid_characters, ”, $html);
$xmlData = simplexml_load_string($html);
$json = json_encode($xmlData);
$array = json_decode($json,TRUE);
$news_count = count($array[“channel”][“item”]);
[/php]
このように修正したところ無事表示されるようになりました。
勉強になりました。
コメント