
ダウンロード販売に特化したアフィリエイトASP「電脳卸ダウンロードアフィリエイト」
●一般の方のPDF文書などでの出品も出来ます。詳しくはここをクリックして確認してください。●
■目次
- APIとPHPを使ってwebページを自動作成
- WebAPIとPHP
- 環境チェック
- WebAPIを使用可能にする
- 簡単なWebAPIを使ってみる
- 天気情報を表示する
- PHP各種サンプル
- PHPに引数を渡す
- ブログパーツ
- 検索エンジン経由でお越しの方へ
- 参考になるページ
右のサイトマップから、たどってください。
■人気のあるページ
ページ数が多くなってきたので、アクセス数の多いページをリストしておきます。
お暇でしたらどうぞ。
08年3月のユニークアクセス数は16,343でした。
ページ数が多くなってきたので、アクセス数の多いページをリストしておきます。
お暇でしたらどうぞ。
08年3月のユニークアクセス数は16,343でした。
■WebAPIとPHP
WebAPIは、Perl(CGI)を使った例が古典的ですが、最近のトレンドはPHPに移ってきているように感じます。あくまでも個人的な印象ですが。
WebAPIとPHPを組み合わせると、動的なページが簡単に作れるので、ページに様々な変化をつけることが可能です。
また、このWebサイトのサンプルを見ていくうちに分かると思いますが、PHP言語とHTMLは親和性が高くなっています。PHPからHTML出力も可能だし、HTML中にPHP処理を行うこともできます。
なお、基本的な文法は省略していますので、文法などで迷ったら、右上の検索窓で調べながらやってください。
WebAPIは、Perl(CGI)を使った例が古典的ですが、最近のトレンドはPHPに移ってきているように感じます。あくまでも個人的な印象ですが。
WebAPIとPHPを組み合わせると、動的なページが簡単に作れるので、ページに様々な変化をつけることが可能です。
また、このWebサイトのサンプルを見ていくうちに分かると思いますが、PHP言語とHTMLは親和性が高くなっています。PHPからHTML出力も可能だし、HTML中にPHP処理を行うこともできます。
なお、基本的な文法は省略していますので、文法などで迷ったら、右上の検索窓で調べながらやってください。
■環境チェック
PHPを利用する場合、まずはそのサーバーのPHP環境を知る必要があります。
以下のソースコードを、Webサーバーに適当なファイル名(拡張子はPHP)でアップロード後、Webブラウザで呼び出すと、PHP環境がチェックできます。チェック後は、削除しておきましょう。
また、WebAPIを利用するうえで重要な機能が停止されているかを確認する必要があります。
変数名は、「allow_url_fopen」で、これが「disable」になっていると、外部サイトからのXMLファイルの読み込みが出来ないので、そのままだと、WebAPIが使用できません。
PHPを利用する場合、まずはそのサーバーのPHP環境を知る必要があります。
以下のソースコードを、Webサーバーに適当なファイル名(拡張子はPHP)でアップロード後、Webブラウザで呼び出すと、PHP環境がチェックできます。チェック後は、削除しておきましょう。
PHPのバージョン情報など、PHPでプログラミングする上での重要情報が含まれています。<?php phpinfo(); ?>
また、WebAPIを利用するうえで重要な機能が停止されているかを確認する必要があります。
変数名は、「allow_url_fopen」で、これが「disable」になっていると、外部サイトからのXMLファイルの読み込みが出来ないので、そのままだと、WebAPIが使用できません。
■WebAPIを使用可能にする
「じゃあ、WebAPIは使えないのか!!」では、このページは終了してしまいますので、回避策をご紹介。
「Snoopy」というクラスが公開されています。これを使うと、外部XMLファイルの取り込みが可能になるので、ダウンロードしたファイルから「Snoopy.class.php」を取り出して、サーバーにコピーしておきます。
外部XMLファイルが取り込めるサーバーだと「simplexml_load_file」を使って、簡単にXMLファイルがパースできるのですが、「allow_url_fopen」が「disable」になっていると、「simplexml_load_file」が使用できませんので、この箇所を「Snoopy」で置き換える必要があります。
「Snoopy」というクラスが公開されています。これを使うと、外部XMLファイルの取り込みが可能になるので、ダウンロードしたファイルから「Snoopy.class.php」を取り出して、サーバーにコピーしておきます。
外部XMLファイルが取り込めるサーバーだと「simplexml_load_file」を使って、簡単にXMLファイルがパースできるのですが、「allow_url_fopen」が「disable」になっていると、「simplexml_load_file」が使用できませんので、この箇所を「Snoopy」で置き換える必要があります。
■簡単なWebAPIを使ってみる
ライブドアのお天気情報サービスでは、WebAPIを公開しています。このサービスはユーザー登録なども必要ないので、入門用にはピッタリなので、これを使ってみます。
リクエスト方式もRESTなので、とっても簡単に使えます。また、リクエスト方式にはSOAPという方式もあります。SOAPのほうが、きめ細かく制御できるので、プログラミングに慣れた方なら、SOAPの方が、扱いやすい場合もありますので、使用するWebサービスのドキュメントを参照し、チャレンジしてみるのも面白いでしょう。
まずは、以下のファイルを作成し、サーバーに転送してください。
PHPの開始・終了タグが全角になっていますが、ページの都合上なので、実際には半角で記述します。
このソースは、ライブドアのお天気情報サービスにアクセスし、東京の今日の天気を取得する例です。
本来は、取得したXMLデータから必要なタグのみをパースして表示するのですが、ここでは入門用ということで、あえて全データの表示を行っています。
表示されたページのソースを表示すると、XMLデータが取得できていることが分かると思います。
ライブドアのお天気情報サービスでは、WebAPIを公開しています。このサービスはユーザー登録なども必要ないので、入門用にはピッタリなので、これを使ってみます。
リクエスト方式もRESTなので、とっても簡単に使えます。また、リクエスト方式にはSOAPという方式もあります。SOAPのほうが、きめ細かく制御できるので、プログラミングに慣れた方なら、SOAPの方が、扱いやすい場合もありますので、使用するWebサービスのドキュメントを参照し、チャレンジしてみるのも面白いでしょう。
まずは、以下のファイルを作成し、サーバーに転送してください。
PHPの開始・終了タグが全角になっていますが、ページの都合上なので、実際には半角で記述します。
このソースは、ライブドアのお天気情報サービスにアクセスし、東京の今日の天気を取得する例です。
本来は、取得したXMLデータから必要なタグのみをパースして表示するのですが、ここでは入門用ということで、あえて全データの表示を行っています。
表示されたページのソースを表示すると、XMLデータが取得できていることが分かると思います。
■天気情報を表示する
では、上で述べたAPIを使って、実際に天気情報を表示するページを作ってみます。
以下のファイルを作成し、サーバーに転送します。
このサンプルは、公開APIを利用したサンプルサイトを作っていくよで公開されているサンプルを加工したものです。このWebSiteには多数のサンプルが掲載されているので、とても参考になります。
動作に関しては、ソースのコメントを見てもらえれば分かると思うので、要点だけ。
どうでしょうか。意外と簡単に扱えますね。
他のAPIも基本的には同じように扱えるので、興味のあるAPIが見つかったら、遊んでみると面白いです。
今日の東京の天気予報を見てみる
マッシュアップにも使えるWebAPIをキーワードで検索してみる
おまけ:普通にファイルアクセスが許可されているサーバーの場合、Snoopyは不要で、単に「simplexml_load_file」の引数にURL(リクエスト)を指定するだけで、XMLデータが取得できます。
ただし、「simplexml_load_file」は、PHP5以上で使用可能な関数なので、PHP4なサーバーをお使いの方には、残念ながら、使えません。
PHP4でXMLを解析するのは、ちょっと面倒なのですが、PEAR:XML_Parserを使うことで、簡単にXMLパースデータを取得できます。PHP4をお使いで、XMLパースの仕方が分からない、という方は、PEAR:XML_Parserを参考にしてください。サンプルの実行例(PHP)も用意しています。
では、上で述べたAPIを使って、実際に天気情報を表示するページを作ってみます。
以下のファイルを作成し、サーバーに転送します。
このサンプルは、公開APIを利用したサンプルサイトを作っていくよで公開されているサンプルを加工したものです。このWebSiteには多数のサンプルが掲載されているので、とても参考になります。
動作に関しては、ソースのコメントを見てもらえれば分かると思うので、要点だけ。
$xml = simplexml_load_string($data);で$xmlに解析されたXMLデータが格納されるので、後はAPIの仕様に従って、−>でつなげていくだけです。
どうでしょうか。意外と簡単に扱えますね。
他のAPIも基本的には同じように扱えるので、興味のあるAPIが見つかったら、遊んでみると面白いです。
今日の東京の天気予報を見てみる
マッシュアップにも使えるWebAPIをキーワードで検索してみる
おまけ:普通にファイルアクセスが許可されているサーバーの場合、Snoopyは不要で、単に「simplexml_load_file」の引数にURL(リクエスト)を指定するだけで、XMLデータが取得できます。
ただし、「simplexml_load_file」は、PHP5以上で使用可能な関数なので、PHP4なサーバーをお使いの方には、残念ながら、使えません。
PHP4でXMLを解析するのは、ちょっと面倒なのですが、PEAR:XML_Parserを使うことで、簡単にXMLパースデータを取得できます。PHP4をお使いで、XMLパースの仕方が分からない、という方は、PEAR:XML_Parserを参考にしてください。サンプルの実行例(PHP)も用意しています。
■PHP各種サンプル
- AJAX版アーティストリンク
xajaxを導入すると、AJAXが簡単に実装できることを、ブログのxajaxで簡単AJAXで紹介しましたが、その実例として、Last.fmとYahoo画像検索APIを組み合わせて実装したページを作ってみました。
実際に使ってみると、フォームに入力したアーティストの曲名と画像部分のみが更新される様子がよく分かります。また、キャッシュを使っているので、一度検索したアーティスト名を再入力(または、アーティスト名をクリック)すると、瞬時に表示されるので、かなり気持ち良いです。お試しを。
- Last.fmのWeb Serviceを使ってみる
世界最大のミュージックコミュニティ「Last.fm」の情報を取得できるウェブサービス「Audioscrobbler」の使用例です。
手軽に大量のデータが取得できるのが最大の魅力です。 - 本文まで追跡表示するRSSリーダー・DeepRSS
RSS1.0のフィードでは、本文の概要しか含まれないので、ちょっと面倒ですね。
そんな場合は、このページを使えば、リンク先の本文まで表示できるので、結構便利です。
最初に使う場合は、リンク先ページのソースを見て、開始マークと終了マークを見つける手間はありますが、次回からは表示されたページをブックマークしておいて、それを開くだけでいつでも最新ニュースがチェックできます。 - アーティストリンク
上で紹介した「Last.fm」のウェブサービスを利用した実例として、アーティストリンクを作成してみました。
使い方は簡単で、フォームの入力欄にアーティスト名を入力して、検索ボタンを押すだけで、アーティスト名に似ているアーティスト一覧を表示します。
さらに、そこに表示されたアーティスト名をクリックすることで、様々なアーティストのつながりが見えてきます。AJAXを使って、どのアーティストとどのアーティストがつながっているかを線でつなげていくと、SonicStageのアーティストリンクのLast.fmバージョンの出来上がり、となるわけですが、そこまですると、どこからかクレームがきそうなので、やめておきました。
これだけでも、以外に遊べます。
全データを表示しているので、画像読み込みにちょっと時間がかかるのが難点かな。
「Rie fu」のアーティストリンク
「RYTHEM」のアーティストリンク
「植村花菜」のアーティストリンク
「竹仲絵里」のアーティストリンク
Amazon、楽天、Yahoo Shoppingで各アーティストに関連したリンク先も表示していますので、よかったら、そちらもヨロシク。 - PEARのQuickForm、実例付きサンプル
PEAR HTML_QuickForm入門ガイドを表示例付きでチェックしてみました。
ソースと動作例を一頁にまとめています。ソースは、上記サイトのコピペなので、関連するフォームが一気に変更されてしまいますが、気にしないでください。 - はてなダイアリーキーワード自動リンクAPIのサンプルページ
はてなダイアリーキーワード自動リンクAPIを使うと、ページをリンクだらけにすることが出来て、なかなか楽しい。ここでは、PEARに含まれるServices_Hatena_Autolinkを使った使用例を紹介しています。
ソース付きです。 - コンボボックスの内容を動的に設定
データベースに問い合わせて、その結果で動的にコンボボックスの内容を初期化したいことがあります。
そんなときも、PHPなら簡単に出来ます。
このサンプルでは、ライブドアお天気Webサービスの全国の天気に現在の状態を問い合わせて、その内容でコンボボックスを初期化する例を説明しています。
ソース付きです。 - ウェザーマップで遊んでみる
ウェザーマップが提供している、「ひとくち予報 in Feed」というRSSをPearのXML_CacheとXML_RSSを使って実際に表示した例です。このRSSでは、content:encodedというブロックに、生のHTMLデータを格納しています。RSSリーダーによって、表示されるのと表示されないのがあるのは、こういうことなんだ・・・と実感しました。
ソースつきです。 - AmazonWebServiceとYahooWebServiceのマッシュアップ例
マッシュアップサイトというのは、二つ以上のWebServiceを組み合わせたWebページのことを、そう呼びます。
WebServiceとしては、かなり大手で使い勝手もよい二つのWebServiceを組み合わせることで、こんなことも出来ますよ、というサンプルです。
本当は、YouTubeとのマッシュアップが最強なのだが、著作権的にどうなんだ?というのがあって、今回は、そういう問題の少ないと思われるYahooミュージックのサウンドステーションをターゲットにしています。
ソース付きです。 - PEARのXML_RSS使用例
PEARパッケージに含まれるXML_RSSを使用すると、簡単にRSSフィードの解析が出来ます。その使用例です。
ソース付きです。 - Javascript経由でPHPを使う方法
PHPが動くサーバーを持っているが、別のHPやブログからそのPHPを使う場合、一般的にはiframeを使います。ここでは、別のアプローチとして、Javascript経由でPHPを駆動する方法を解説しています。
ソース付きです。 - PEAR:Cache_Liteでキャッシュ管理
ウェブサービスを頻繁に使うようになると、表示速度の遅さが気になってきます。
そんな時は、更新頻度の少ないデータに関してはキャッシュしてしまうのが手っ取り早い方法。
ここでは、PEARに含まれるCache_Liteパッケージの使い方を説明しています。
ソース付きです。 - クエリーの解析
RecoBotのようなユーザーの嗜好に合わせた商品をラインナップするには、検索エンジンが送ってくれる「クエリー」の情報を如何に解析するか、にかかってきます。
ここでは、そのクエリーの解析例を解説しています。
ソース付きです。
■PHPに引数を渡す
上の例では、常に今日の天気予報しか表示できないので、不便です。
PHP呼び出し時に引数を渡して、お天気Webサービスでサポートしている、今日、明日、明後日を指定できるようにしてみると、よりユーザーフレンドリーなつくりになります。
PHPに引数を渡すには、hogehoge.php?parameter1=val1¶meter2=val2、のようにすると、PHP側で受け取ることが出来ます。
PHPファイルでは、
ソースは下のようになります。
違いが分かりますか?リクエスト用URLを作成する直前で引数をチェックし、指定されていればその値で更新するように変更してみました。
引数を省略したときは、todayになります。(初期値)
本当は、引数の妥当性をチェックしないといけないのですが、サンプルなので、省略しています。
実際に呼び出してみましょう。
今日の東京の天気予報を見てみる
明日の東京の天気予報を見てみる
明後日の東京の天気予報を見てみる
場所も変更できるようにするなど、更なる拡張にチャレンジしてみるのもよいでしょう。
上の例では、常に今日の天気予報しか表示できないので、不便です。
PHP呼び出し時に引数を渡して、お天気Webサービスでサポートしている、今日、明日、明後日を指定できるようにしてみると、よりユーザーフレンドリーなつくりになります。
PHPに引数を渡すには、hogehoge.php?parameter1=val1¶meter2=val2、のようにすると、PHP側で受け取ることが出来ます。
PHPファイルでは、
isset($_GET['parameter1'])
{
$parameter1 = $_GET['parameter1'];
}
とすれば、parameter1の値がval1にセットされます。ソースは下のようになります。
違いが分かりますか?リクエスト用URLを作成する直前で引数をチェックし、指定されていればその値で更新するように変更してみました。
引数を省略したときは、todayになります。(初期値)
本当は、引数の妥当性をチェックしないといけないのですが、サンプルなので、省略しています。
実際に呼び出してみましょう。
今日の東京の天気予報を見てみる
明日の東京の天気予報を見てみる
明後日の東京の天気予報を見てみる
場所も変更できるようにするなど、更なる拡張にチャレンジしてみるのもよいでしょう。
■検索エンジン経由でお越しの方へ
このWebサイトの主要ページに、ちょっと前にブレイクした「レコボット」と同等の機能を実装してみました。
仕組みは、googleやYahooでこのページに飛んでくると、キーワードリファラーに、検索キーワードが入ってくるので、それをAmazonWebServiceのキーワードとして、マッチする商品をページに表示する、というものです。
検索エンジン経由でこなかった場合(リファラーにq=またはp=が見つからない)は、商品検索は行わないようにしています。
また、このページの特性上、キーワードと商品のマッチングがとても低いので、マッチする商品がない場合は、あらかじめ決めておいたキーワードにすりかえて、商品検索しています。
検索エンジンとAmazonのマッシュアップ例になるかな?
詳しくは、ブログの該当エントリがあるので、右上のサイトマップから探してみてください。
あと、サーバー負荷の問題から、この機能の外部公開はしていません。
使いたい場合は、ブログのエントリを参考に自作してください。
質問していただければ、分かる範囲でお手伝いしますので。
仕組みは、googleやYahooでこのページに飛んでくると、キーワードリファラーに、検索キーワードが入ってくるので、それをAmazonWebServiceのキーワードとして、マッチする商品をページに表示する、というものです。
検索エンジン経由でこなかった場合(リファラーにq=またはp=が見つからない)は、商品検索は行わないようにしています。
また、このページの特性上、キーワードと商品のマッチングがとても低いので、マッチする商品がない場合は、あらかじめ決めておいたキーワードにすりかえて、商品検索しています。
検索エンジンとAmazonのマッシュアップ例になるかな?
詳しくは、ブログの該当エントリがあるので、右上のサイトマップから探してみてください。
あと、サーバー負荷の問題から、この機能の外部公開はしていません。
使いたい場合は、ブログのエントリを参考に自作してください。
質問していただければ、分かる範囲でお手伝いしますので。
■参考になるページ
- 公開APIを利用したサンプルサイトを作っていくよ
このページを作るうえで最も参考にさせていただいたページです。豊富なサンプルが役に立ちます。 - 日本で公開されているAPI一覧
名前のとおり、日本で公開されているAPI一覧です


