解説(2)設定事項を上部に記述する
ヤフーショッピングの商品検索PHPプログラムのサンプルコード(serch.php)の解説の続きです。
次は、設定部分です。
検索方法を変えたい場合に、設定すべき項目を変数にしておきますサイトを量産する際に、プログラムの途中をあちこち変更しないとダメな作り方をすると後々大変ですので、変更部分は1つのファイルの上部に集めて指定します。
// ---------------- 設定部分 ------------------------------////ヤフーアプリケーションID$DEVELOPER_ID = "●ヤフー・デベロッパーネットワークのアプリケーションID●";
まずここは、アクセスキーを設定する部分です。
自分で取得したアプリケーションIDをコピペします。
//APIサーバーのURL$API_BASE_URL = "http://shopping.yahooapis.jp/ShoppingWebService/V1/";
//オペレーションの選択(今回は商品検索)$OPERATION = "itemSearch";
ここは、webサービスのAPIサーバーのURLを設定する部分です。
オペレーションとは、商品検索とかランキング検索とか、検索バリエーションの指定ですね。
//検索結果数の設定(ヤフーショッピングは最大50)$max_num = 5;
//ソート順(検索結果の並べ方)+price,-score,+soldなど$ysort ='-score';
この部分は、検索結果をいくつまで表示するかという設定です。
楽天市場の場合は1度のリクエストで30まで、ヤフーショッピングの場合は50までです。
検索結果を多くしすぎると、処理に時間がかかりますし、携帯サイトなどは一度に表示できるファイル容量の関係で、携帯でアクセスしても「表示できません」という表示が出てしまいます。
//UTF-8でURLエンコード$key = urlencode(mb_convert_encoding($keywords,"UTF-8","auto"));
$ysort = urlencode(mb_convert_encoding($ysort,"UTF-8","auto"));
キーワードやソート順などは、UTF-8という文字コードに変換した上で、URLエンコードと言うことをしてHTTPリクエスト(REST)しないとエラーになります。
なのでここでUTF-8エンコードされた文字列を作って、別の変数にそれを格納します。
mb_convert_encoding($keywords,"UTF-8","auto")は、変数$keywordsに格納されている文字列をUTF-8に変換する関数です。
"auto"は、$keywordsに入っている文字コードを自動で判別する指定です。
urlencode関数で、さらにURLエンコードという変換を加えます。
これはまあ簡単に言うと、"http://〜/itemSearch?"の後にhttp://yahoo.co.jp/ABC/ などというのを引数(ひきすう)として連結する場合、スラッシュ(/)やコロン(:)などがURLの一部だと誤解されないように、 http%3A%2F%2Fyahoo.co.jp%2FABC%2F と言う風に変換して連結するんですね。
また入力したキーワードやソート順は、検索結果ページを作るときにまた使いますので、中身が変わらないようにしておきます。