simplexml_load_fileとアンパサンド
&(アンパサンド)には、何度も悩まされているのですが、またもや!はまりました(--#
その顛末記です。
RSSを結合するにはYahoo!Pipesなど外部のWebサービスを使えば超ラクチンです。が、毎回Yahoo!Pipesというのも面倒です。できればphpで完結させたいのと、使い回しがきくように……ということで避けます。
そこで、simplexml_load_fileでRSSを読み込み、HTMLScrapingのサンプルスクリプトHTMLToFeed.class.phpに渡すという方法をとっています。
が。
DOMDocument::createElement() [function.DOMDocument-createElement]: unterminated entity reference
というWarningを吐きます。
なんかアンパサンドがある場合にでるエラーっぽいなぁと思っていたら、やっぱりそうでした(--#
XMLをsimplexml_load_fileが読み取って、指定したファイルの中の整形式 XML ドキュメントをオブジェクトに変換します。その際、&を&に変換してくれるんですねぇ〜。
親切!
けどちょっと余計なお世話orz
せめて一言声をかけてからやってください(無理か)。
よもやと思ってprint_rしてみたらやっぱりそうなのでびっくりしましたよ。
(HTMLScrapingに同梱されている)HTMLParser.classの _escapeCharsというユーザー定義関数
もう一度置換をかけることにしました。
何かもう少しいい手があるといいですねぇ