2006年07月18日

【バグ修正】Flickr Tag このエントリーをはてなブックマークに追加

こんにちは、危険な関係の小柴こと細山田隆人です(嘘です)。

喜び勇んで公開してみた Flickr Tag だったのだが、バグ発見・・・orz

ブログパーツをさがせ の satokoto さんからのご指摘で判明したばい。(satokotoさん、ありがとーございます)

バグの内容はある特定のタイトルの場合に写真が表示されないってものだった。
うーむ。

2分くらい調べてやっとわかったのだが Filckr Tag では写真のタイトルを取得してサムネールのALTタグにセットしたりしている。
で、この写真のタイトルに、「'」というシングルクォートがあると Javascript でエラーが発生する。(←そりゃーそーだ)。

なので、タイトルが「ryouchi's Book」とか「Rock'n Roll」(謎)といったよーなタイトルだとエラーになっていた。(すまん)

Flickr Tag では、先ず、指定したタグのRSSを SimpleXML でGetして、phpで表示用の Javascript ファイルを動的に生成する。
なので、ユーザからは生成された Javascript のコードのみが返ってくるよーな仕組みになっている。
で、この Javascript で表示するものは document.write で勿論指定するのだが、 document.write は「'」というシングルクォート内の文字列を表示しようとする。
しかし、変数内にシングルクォートがあると、そこで表示は終了ですと思っちゃったりするので、その後にはなんだかわけのわからない文字列がくっついているねって感じでエラーだよと認識されちゃうのだ。

なので、ちょいと面倒だったのでもう下記の部分をバッサリと「シングルクォートはもう取ってしまえ」って感じでこんな風にしてみた。
■変更前
foreach ($rss->channel->item as $ln){
 $l_array[] = $ln->link;
 $t_array[] = $ln->title;
}

■変更後
foreach ($rss->channel->item as $ln){
 $l_array[] = $ln->link;
 // シングルクオートをNULLに変換
 $t_array[] = str_replace("'" ,"" ,$ln->title);
}

なんとなく付け焼刃っぽいのだがとりあえず動いたばい。

うーむ。プログラムとは難しいのぅ・・・

satokotoさんによるご紹介記事:ブログパーツをさがせ : FlickrTagで新着写真


posted by りょーち | Comment(2) | TrackBack(0) | Web周辺技術
この記事へのコメント
こんばんは。今回はお手数をおかけして誠に申し訳ありませんでした。
あのあと、すぐ表示されたのでFlickrの方の不具合なのかと。(今もひそかにそう思ってます^^)
対処ありがとうございました!
Posted by satokoto at 2006年07月20日 00:21
satokotoさん、こんにちは。りょーち@管理人です。コメントいただきましてありがとうございます。
>あのあと、すぐ表示されたのでFlickrの方の不具合なのかと

あー、いえいえ。私のミスでした。うーむ。
いろいろ難しいことがあります(^^
しかも7/20現在、filckr.comが
Seriously, we apologise for the unannounced downtime.
(予告無しにサービスとめてしまってごめんね)
って感じで現在TAGのRSSが取得できずに何も表示されない状態になっています(うーむ)
RSSの仕様が変更になるとちょいと面倒だなー。

ではでは。
Posted by りょーち at 2006年07月20日 09:08
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


×

この広告は180日以上新しい記事の投稿がないブログに表示されております。