前回はGoogle Feed APIを用いたものの作成例を参考に作ってみたのですが、更新が反映されるのが遅いというのが難点だったので、PHPで書かれた作成例を参考にして作り直しました。
画像が取得できない
Google Feed APIを用いたものではサムネイル表示できたのですが、参考元のサンプルにはサムネイル表示機能がなかったので、画像取得のためのPHPのコードだけを追加してそのまま用いると、失敗しました。RSSで配信されたデータ中の画像リンクはCDATAセクション中にあるのでSimpleXML関数で取得しようとするときに拾えていなかったことが原因だったようです。
・「simplexml_load_file関数の第三引数にLIBXML_NOCDATAを指定する」
・「名前空間指定のあるデータへのアクセス」→children()関数
これで、テキストとして取得できるので、画像のリンクをpreg_match関数で漁ると取得できました。
[参考]:PHPのSimpleXML関数でRSSを取得する場合の注意点
[参考]:PHPでXMLの名前空間つきタグを読み込む色々
・「名前空間指定のあるデータへのアクセス」→children()関数
これで、テキストとして取得できるので、画像のリンクをpreg_match関数で漁ると取得できました。
[参考]:PHPのSimpleXML関数でRSSを取得する場合の注意点
[参考]:PHPでXMLの名前空間つきタグを読み込む色々
記事のカテゴリが表示したい
先ほどの「名前空間指定のあるデータへのアクセス」と被りますが。
[参考]:simplexml_load_fileでdc:subjectやcontent:encodedを読み込む