2010/9/9

SimpleXMLのエラー処理

Tumblr API、連続アクセスすると403が返って来るようで、エラー処理を入れないといけないことに気づきました。

<?php
$req_url = ‘http://humidor.tumblr.com/api/read?num=7’;
$xml = @simplexml_load_file($req_url);
if ($xml) {
foreach ($xml->posts->post as $tumblr) {
if ($tumblr->{"link-text"}) {
$title = $tumblr->{"link-text"};
$permalink = $tumblr->{"link-url"};
echo ‘<li><a href="’.$permalink.’">’.$title.'</a>’;
}
else if ($tumblr->{"quote-text"}) {
$quote = $tumblr->{"quote-source"};
echo ‘<li>’.$quote.'</li>’;
}
}
} else {
echo ‘XMLパースエラー’;
}
?>

ポイントはsimplexml_load_file($req_url);の前に@を加えてエラーログを出力しないようにしていることです。後は$xmlが空かどうかで例外処理を書いてやればいいですね。

@をつけるのを知らず、30分くらい検索地獄でした。

加藤 康祐 / 企画・設計

プランナー、デザイナー。加藤康祐企画設計代表。Webデザインを入り口に、2005年よりフリーランスとしてのキャリアスタート。主な仕事としてベンチャー企業でのサービスのUXデザイン、独法との防災メディアの運営、社会的養護の子どもたちの自立を支援するNPOのサポート。ラグビーと料理、最近イラスト。

加藤康祐企画設計

是非、フォローしてください!
Twitter / Instagram

(2012-10-5)
売り上げランキング: 14,705
100円