「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」の続編にあたり、PHPの「データ構造」(配列とオブジェクト)について解説します。
配列やオブジェクトは、頭の中で考えるだけでは、イメージがつかみにくいです。本書では図を多用して、配列やオブジェクトをなるべく分かりやすく解説することを心がけました。
Kindle本で、定価250円です。
iTunes Store RSSにハマる
とある案件で、「iTunes Store RSSからアプリのランキング情報のXMLを得て、サイトに表示する」という処理を作りました。
その際にハマったことがあったので、紹介します。
PHPでパースするとエラーが出ることがある
今回は、PHPを使ってXMLをパースし、ランキングを出力するようにしました。
XMLのパースには、PHP5標準のDOMDocumentクラスを使いました。
ところが、iTunes Store RSSのXMLをいろいろと試してみると、XMLのパースの際にエラーが発生することがありました。
Ctrl+Sが混入している
XMLを保存してテキストエディタで開き、XML内でエラーになった行をよく見てみると、アプリの要約の文章(summary要素)に、Ctrl+Sコード(文字コード19番)が混入していることが分かりました。
このCtrl+Sのために、PHPが「XMLに不正な文字コードがある」と判断して、エラーを出力していました。
そこで、XMLをパースする前に、正規表現を使ってXMLからCtrl+Sを削除するようにしました。
これで、XMLのパースを正しく行えるようになりました。
iTunes Store RSSの不具合だと思いますので、ぜひApple側で修正していただきたいです。