ホーム > タグ > PHP

PHP

SimplePieがパースエラーを吐くときの対策

PHPでFeedをお手軽に扱えるSimplePieですが、ときたま謎のエラーが発生します。

僕が最近ぶつかったエラーは

 
<pre>A feed could not be found at http://katsuura.co.jp/. A feed with an invalid mime type may fall victim to this error, or SimplePie was unable to auto-discover it.. Use force_feed() if you are certain this URL is a real feed.</pre>

というエラーでした。

しかたないので、 $feed->force_feed(ture); すると…

 
<pre>This XML document is invalid, likely due to invalid characters. XML error: Mismatched tag at line 13, column 8</pre>

こんなエラーが出ます。ふしぎですねー

しかし、wgetした後で localhost/hoge.xml をパースすると成功するのです。さらに。適当な別のサーバーに echo file_get_contents(destination_addr); とか書いたPHPスクリプトを置いて踏み台にすれば、これでも動いちゃいます。本当に不思議です。

全文を読む

SimplePieにjugemのフィードを入れるとバグる事への対策

PHPでFeedをいじる時に便利なSimplePieというライブラリがあります。
商用OKなライセンスなので仕事で扱うときに重宝しているんですが、ちょっと困ったことがありました。
jugemのブログ…結構使ってる人多いですよね。これをパースさせると、上手く行かないんです。
なんでかなーと色々調べていくうちに、どうやらURLのノーマライズをするメソッドでjugemサーバー的に都合の悪い変換をしてしまう様でした。

今回の案件では、このノーマライズをすっ飛ばすことで解決しました。
具体的には
9362行目

function normalize_url($url){

の直下に

return $url;

を入れるだけです。

需要あんのかなぁこの記事。。。と思いつつメモ

PHPのforeachが Invalid argument supplied for foreach() 出しまくりの対策

今、SimplePieとかを使ったWordpressプラグインを書いているんだけど…

何か意味不明なエラーが発生。

Invalid argument supplied for foreach()

って出るんだけど
print_rするとちゃんと配列になってる。
で、良くわかんないし良くわかんないし良くわかんないので
別の変数に対象の配列を代入(というかPHPの場合コピー)してみると、上手く行った。

全文を読む

Home > Tags > PHP

Search
Feeds
Meta

Return to page top