Ajaxといわれて最初に思い浮かぶのは、Googleマップみたいなグラフィカルなものです。
でも、あそこまでグラフィカルなものじゃなければ、素人でも便利な動的なサービスが作れるのがAjaxです。
ってことで、今日はなぜかAjaxに挑戦してました。
Ajaxってのは「Asynchronous JavaScript + XML」の略で、非同期なJavascriptとXMLを使って作る動的なシステムなことです。
実際は律儀にXMLを使わなくても、Ajaxの範疇ですが( ´-`)
んで何作ってたかというと、「とあるURLが沢山含まれたテキストから、その中に含まれるURLが示すページの中で、特定の文字列が含まれたページへのURLの一覧を表示する」という、そこはかとなく用途が怪しいものです( ´-`)
とりあえずページを切り替えないということで、JavascriptのXMLHttpRequest使って作って、ローカル環境で試してたんですが、いざサーバーにUPすると、クロスドメインの問題で使えない事が判明。
よーするに、Javascriptでは自分が今見てるページ以外のサーバーへ、リクエスト投げたりできないみたい。
まぁ、そんなことできたら、いやがらせし放題なので当然ちゃぁ当然なのかもしれませんが。
そんなこんなで、クロスドメイン制限の無いPHPを間にかます事にしました。
それなら文字列からURLの抜き出する処理とかも、全部PHPまかせにしちまうことにしました。
①XMLHttpRequestで入力された文字列を、同サーバーのPHPへ投げる。(Javascript) (IEの場合はActiveXObject) ↓ ②POSTで受け取ったデータから正規表現(preg_match)使ってURLのリスト抽出(PHP) ↓ ③そのURLリストのURLをPEAR::HTTP_Requestに投げ込んで、HTMLソースを得る(PHP) ↓ ④そのHTMLソースをstrstrで文字列検索して、特定の文字列が含まれるかどうかを確認(PHP) ↓ ⑤「③④」をリストの全URL分繰り返して、含まれた時のURLを別のリストにつっこんでく(PHP) ↓ ⑥全URLの確認が終わったら、その別リストを出力(PHP) ↓ ⑦帰ってきたデータから得られたURLを加工して表示(Javascript) |
って感じですかね。
参考にしたページは、PHPのマニュアルとJavascriptのリファレンスくらいです。
けっこう手軽に、動的なAjax的ページが作れますね。
つっても、すでに朝になってる時点で手軽じゃないけど。
Ajaxついてにで、AmazonAPI(ECS 4.0)とYahooオークションのWEB APIの仕様に目を通して、ある程度理解できたんですが。。。
「さぁ!何か作ろう!」と思ったら、別にAmazonとかヤフオクのシステム使って作りたいものなんて無いんですよね。
他にもWEB APIは色々あるようで、Web API情報を共有サイトなんてのもの発見した。
OpenService
なんか色々作れそう。
誰かなんか面白いアイディアない?
Trackbacks:0
- TrackBack URL for this entry
- http://txt.tyo.ro/mt/mt-tb.cgi/438
- Listed below are links to weblogs that reference
- Ajaxに挑戦してみたものの from tyoro.txt
Comments:4
18kb | 返信
前半読んだ時点でPHP間に挟めばいけるな、と思ったら・・・
>そんなこんなで、クロスドメイン制限の無いPHPを間にかます事にしました。
ちゃんと自己解決したのね。
ちなみに、
>そのURLリストのURLをPEAR::HTTP_Requestに投げ込んで、HTMLソースを得る(PHP)
get_file_contents("http://~");
で一発で取れるよ。設定によるけど。
> 誰かなんか面白いアイディアない?
郵便番号住所変換API欲しい。
マヂで。
tyoro | 返信
file_get_contentsっすね。
POSTとか投げたりするわけでもない時は重宝しそうですね。
覚えておきます(`・ω・´)シャキーン
>郵便番号住所変換API欲しい。
>マヂで。
つ
http://yubin.senmon.net/service/
http://objectclub.esm.co.jp/webservice/services.html#zipsearch-service
18kb | 返信
> file_get_contentsっすね。
そう、それ(^^;
> つ
自社サーバでやりたいんだよね・・・
他社製だと鯖落ちてる時とか対応できないんで。
だから今度作ろう。俺仕様書くし。
tyoro | 返信
>だから今度作ろう。俺仕様書くし。
ウボァ('A`)