ID-Blogger

2009年8月記事一覧

PHPでXMLパーサすると文字化けする場合の対処法

XMLデータ→XMLパーサ(PHP)→JSONデータ→Ajaxみたいな、出力するまでにえらい長い経由でたどり着く流れを作っております。
一通り出来上がって各種ブラウザで動作確認していたのですが、IE(Internet Explorer)の時だけなぜかJSONデータを読み込めないエラーが!
毎度IEには泣かされます...

トライ&エラーを繰り返しつつ原因を探って行くと、PHPでXMLパーサしてJSON形式に変換した段階で「?????」とか「��(<?>みたいなマーク)」のように一部データに文字化けが発生しているのが原因と突き止めました。
どうやらIEではJSONデータに文字化けがあると読み込めないようです。

過去の経験上、文字化けの発生の原因は文字コードがあってない場合がほとんど。
でも今回はXMLデータからAjaxまで一貫して「UTF-8」で揃ってるハズなのでナゼ問題があるのか皆目見当がつかない...。

困った時にはGoogle先生!というワケでググりまくったらやっぱり原因ありました。

「Google AJAX Libraries API」でjQuery UI等がうまく動作しない場合の対処法

前に紹介した人気Ajaxライブラリ群を手軽に使える「Google AJAX Libraries API」ですが、このAPIを使ってjQuery UIなんかの動作テストしていたのですがどうにもうまく動作しない現象が。

ドラッグ&ドロップを実現する「droppable()」の指定で、オブジェクトをドラッグしたときにドロップ先のオブジェクトのCSSを書き換える「activeClass」と「hoverClass」のオプションを指定しているのに動作しないという現象がありました。
何度も設定やソースを見直しても問題が見当たらず...。

いろいろ試行錯誤した結果、「Google AJAX Libraries API」でしたAjaxライブラリのバージョン指定がイマイチだったようですw

ソーシャルストリームの潮流が来てるのかもしれない

「IDEA*IDEA ~ 百式管理人のライフハックブログ」さんで紹介されてたYouTubeの動画なんですがこれまたナンとも興味深い。

ソーシャルメディアに関する驚くべきデータを4分ほどにまとめた必見の映像『Social Media Revolution』 - IDEA*IDEA ~ 百式管理人のライフハックブログ

とはいっても英語なのでなので個人的にぐっときたものをいくつかご紹介。

  • 2010年にはGeneration Yの人口が団塊の世代の人口を超える。
  • Webにおいて、ソーシャルメディアはポルノを超えた。
  • 昨年米国で結婚した人の8人に1人はソーシャルメディアで出会った。
  • 5000万人ユーザーに達するまでかかった年数。ラジオ:38年、テレビ:13年、ネット:4年、iPod:3年。Facebookが1000万ユーザーに達するまでにかかった期間は9ヶ月弱。iPhoneアプリは10億個に達するまで9ヶ月弱だった。
  • もしFacebookが国家だったら世界4番目。
  • 2009年に米国の文科省が発表したところによると、オンラインで教育を受けた人の方が、対面で教育を受けた人より優秀だったそうだ。
  • 高等教育を受けている人の6人に1人がオンラインで教育を受けている。
  • 80%もの企業がLinkedInを使って求人活動をしている。
  • アイルランドやノルウェイ、パナマの人口よりもFollowerがいるTwitterユーザーがいる。
  • 80%の人がTwitterをモバイルで使っている。顧客サービスが悪かったりしたら・・・と考えると恐ろしいですね。
  • Generation YとZにとってメールは過去のものになりつつある。2009年にはBoston Collegeでは新入生にメアドを配るのをやめた。
  • 世界で2番目に大きな検索エンジンはYouTube。
  • ソーシャルメディアのスピードのおかげで、いまや「Word of mouth」は「World of mouth」になった(← うまいなw)。
  • Facebookのスペイン語版はユーザーがみんなで翻訳した。かかった期間は4週間。Facebookのコストはゼロだった。
  • 世界の20大ブランドについて検索すると、その結果の25%はソーシャルメディア。
  • 34%のブロガーが製品やブランドについて投稿している。
  • 人々はGoogleの検索ランキングよりも、ソーシャルメディアによる評価の方を気にしている。
  • 従来のTVキャンペーンで効果が出ているのは18%だけ。
  • Jeff Bezos(Amazonの社長)によると35%の書籍販売はKindle向け。
こうした統計はそのまま鵜呑みにするべきではないですが、なかなかインパクトがありますね。
というか編集ウマ過ぎますよ~

しかし改めて考えてみるとソーシャルメディアの変革の流れはもの凄いスピードで進んでいるような気がします。
実際自分に当てはめてみると2009年になって「Twitter」「Tumblr」「Facebook」「Last.fm」と矢継ぎ早に始めました。(遅いよ!ってツッコミはなしの方向で...)
全部海外なのか!!

AjaxでXMLを扱うなら軽量な「JSON」がイイ感じ

Ajax上でのXMLデータの取り扱いについていろいろ調べていくと、どうも「JSONが軽量でいいよ」という話が多いようです。
前の「Ajax.RequestのresponseXMLでXMLが取得できない場合の対処法」でも書きましたが、どうせPHPで中継させなきゃいけないのならJSONで吐き直したほうがイイんじゃないのか?と思いチャレンジする事にw
半年くらい前にちょこっと勉強したんですがもはや忘却の彼方へ...やっぱりブログとかに備忘録として残しておかないとダメですね。

ググりまくっていろんなサイトを調べましたが最も参考になったサイトはこちら

丁寧に解説されていてすごく分かりやすかったです。

で、JSONとはいったい何なのか?

[鏡] 入門 JSON -- 戯れ言++
最近 JSON (JavaScript Object Notation)にハマってます。 JSON というのはごく軽量のデータフォーマットで, Javascript (というより ECMAScript と言うべきかもしれませんが)の言語仕様がベースになっています。とはいえ, JSON 自体は Javascript からは独立していますので他の言語(C/C++, Java, C#, Perl, Ruby, Python など)でも問題なく扱うことができます。 JSON は以下の2種類のデータ構造の組み合わせでできています。(JSON フォーマットの詳しい解説をご所望の方は「入門 JSON 2」を参照ください)
  • 「名前:値」の組み合わせ(連想配列)。組み合わせ自体をひとつの要素として扱うことができます。
  • 要素の順序つきリスト(配列)。リスト全体をひとつの要素として扱うことができます。
端的に言うと「文書やデータの意味や構造を扱うXML形式の書式をJavaScriptの仕様に合わせて超簡単にしました」というカンジでしょうか。

Ajax.RequestのresponseXMLでXMLが取得できない場合の対処法

世の中はお盆休み中ですが、この間に滞っていたAjaxごにょごにょプロジェクトを再始動。
なんかトライ&エラーのテストプログラムばかり大量量産してます...。

「Prototype」Ajax.Requestを使っていろんな外部WebサイトのサービスAPIからXMLデータを抜き出すテストをしていたのですが、早くも壁にぶち当たって頓挫いたしました。
Ajax.RequestでサービスAPIにアクセスしてXMLデータを貰って来るまでは良かったのですが、いざresponseXMLで表示するとデータがNull(空白)!!
初期テストの段階では問題なかったのに...。

という事でいろいろ調べたらやはり原因がありましたw

2009年8月記事一覧