2012年2月15日水曜日

RSS処理するときのCDATA処理(simplexml_load_file)

  • このエントリーをはてなブックマークに追加

RSSをphpでsimplexml_load_fileするときに
CDATAで記述されていると空白になってしまう。
そこで空白にならずにデータを抽出するにはオプションを指定してあげればいい。



simplexml_load_file($xmlname,"simpleXMLElement",LIBXML_NOCDATA);

第二引数はどういうオブジェクトクラスで返すか、
第三引数でCDATAがある場合に空白にならないようにするといった感じ。


ちなみにRSSとかでブログを読み込むときによく困るのが以下の処理。

  • 改行処理
  • imgタグの除去

ブログ書いている人にもよると思うけど
がっつり改行しているブログがあったり、
デコメ用の絵文字使っていたり


そんな時は正規表現で置換しちゃえばうまく引っ張れる。

$body = "ブログ記事";
$body = preg_replace("/(<br.*>|<img.+>)/i","",$body);

Adsense