前回の日誌に引き続き、
例の障害「$loc[$i]の値がない場合にJunaioでエアタグが生成されない」という障害と戦っていました。
search.phpの編集です。

junaio用xmlを排出する部分を編集
(編集前)
for($i=0;$i < count( $title );$i++) (編集後) for($i=0;$i < count( $loc );$i++) 今までは「$titleに値があるかぎり生成せよ」、としていたものを「$locに値があるかぎりエアタグを作ってください」と書き換え。これで障害は消え去ったように思われたが。。。
失敗

原因を探り探り、すると、

何も入っていないと思われた$loc[$i]に「半角スペース」が格納されていることが判明。これはWordPressからRSSを排出する際についてしまうのか、それともWordPressのDBに記事データを格納する際に起きてしまうのか・・・前者ならば手のほどこしようがありそうなものの後者だった場合はどうすればいいのかしらん。とりあえずsearch.php上でどうにかすることにした。

この場合は単純に、

「foreachでxmlのタグ達を格納している間にもし$v->locationに半角スペースが入っていたらなにもしない、$v->locationに正しい数値が入っていたらそれぞれのxmlタグの中身をそれぞれの値に格納してください。」というお願いをする。
そしてカウンタ変数iを一つずつ上げるようにする。

恥ずかしい話、最初はこのアルゴリズムを頭の中で考えつかずにひたすら面倒な記述を書き続けた。知り合いのペチパーに助けてもらってようやく理解。Junaio側でも新しくテスト用チャンネルをつくったりといろいろやって結構時間がかかりました。そういえばまだAirLog上でARチャンネルを更新してない。

障害はいろいろ試行錯誤をしたのちにようやく除去されたのである。

unset()やらtrim()やらvar_dump()やらいろんな関数を知りました。
・unset()は引数の中身を消す関数
・trim()は引数の中身で先頭のスペースを消したり指定した文字を消したりできる便利な関数
・var_dump()は引数に今なにが格納されているかを教えてくれる関数

大学の授業で最低限は勉強したつもりでいたんだけど、全然わかってなかったことを実感。

そういえば、iOS用WordPressアプリから画像ファイルをアップすると自動的に位置情報(Lat_Long)になることが分かりました(わかっていました)。これは確かKtaiStyle絡みのプラグインで出せたような気がしますけど、詳細は忘れてしまいました。
メール投稿でも記事をアップロードできるはずなのですが、今のところうまくいかず、原因不明。
別のアップロード手段を検討する必要があるかもしれない。

またこのブログからもJunaio用にエアタグを生成できるようにしてみます。