SimplePieでinvalid XMLエラーが発生するとげんなりしますよね。これはRSSの記述に原因があるためこちらでは何ともしようがありません。と、思っていたのですが解決策を見つけたので共有します。v1.5.6以上で動作確認済み&複数フィードにも対応しています。
結論:以下のコードをコピペする
場所:SimplePie.php → init関数内「//Empty response check」コメント行のすぐ上
$this->raw_data = preg_replace('/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F]/', '', $this->raw_data);
こんな感じ。
if ($this->feed_url !== null)
{
~略~
}
// ここに追加
$this->raw_data = preg_replace('/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F]/', '', $this->raw_data);
//Empty response check
if(empty($this->raw_data)){
~略~
}
注意点としては、SimplePieをバージョンアップする度に追記し直す必要があります。
コメント欄