2013.09.03
STAFF BLOG
スタッフブログ
TECHNICAL
テクログ
こんにちは、けーすけです。
気象庁のサイトから天気予報のXMLを取得してサイトに表示するということをやりました。
表示するだけなら簡単にできますが、問題は重いということです。
動きが非常にもっさりします。
そこで、天気予報のXMLをDBに保存することにしました。
SimpleXMLElementをserializeしてDBに書き込むのはできました。
が、問題はここから。
serializeしたSimpleXMLElementをunserializeして天気予報を表示しようとすると、します。
WordPressだと思って見て下さい。
//1.天気予報XMLのURL
$url="http://hoge.hoge/xxx.xml";
//2.天気予報を取得
$tenki_xml = simplexml_load_file($url);
//3.シリアライズしてDBに保存
update_option("tenki_xml",serialize($tenki_xml));
//4.DBから天気予報XMLを取得
$tenki_xml = get_option("tenki_xml");
//5.天気予報XMLをアンシリアライズ
$tenki_xml = unserialize($tenki_xml);
5でエラーになります。
余裕でできるだろうと高をくくっていたのでちょっとあせりました。
いろいろ調べてみたのですが、SimpleXMLElementに戻すのはめんどくさいことがわかりました。
今回は完結した処理だったので、生成したHTMLをDBに保存して済ませました。
XMLのデータを利用したい場合、stdClassか配列にするのが良いようです。
今後、アンシリアライズできるようになってほしいですね(^^;
けーすけでした(・ω・)