|
PHP を使ってURL エンコード*を行うプログラムを作ってみることにする。
URL エンコードは、Google 検索や各種WebAPI のパラメータだけでなく、Wikipedia のファイル名としても使われている。日本語を使って Web サービスを利用する場合には覚えておく必要があるキーワードだ。 |
サンプル・プログラム |
|
URLエンコードの利用シーン |
|
|
Google 検索で "ぱふぅ家のホームページ" を検索すると、URL は "http://www.google.com/search?hl=ja&lr=lang_ja&q=%E3%81%B1%E3%81%B5%E3%81%85%E5%AE%B6%E3%81%AE%E3%83%9B%E3%83%BC%E3%83%A0%E3%83%9A%E3%83%BC%E3%82%B8" となる。この "q=" 移行の部分が "ぱふぅ家のホームページ" をURL エンコードした結果の文字列である。 Yahoo!検索では "http://search.yahoo.co.jp/bin/search?yuragi=on&p=%A4%D1%A4%D5%A4%A5%B2%C8%A4%CE%A5%DB%A1%BC%A5%E0%A5%DA%A1%BC%A5%B8" となる。 また、各種WebAPI のパラメータとしても使われる。 たとえば、Yahoo!JAPAN の「関連検索ワード」を利用するときには、パラメータ query をURL エンコードする。 日本語のファイル名を扱うことができないようなシステムでは、URL エンコード結果をファイル名にすることが多い。 たとえば Wikipedia のページ "http://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89" は「エンコード」の開設をしているが、"wiki/" 以下の部分は「エンコード」をURL エンコードした結果の文字列である。 このように、日本語で Web を利用する際には、あらゆる場面でURL エンコードに出会う。 |
|
サンプル・プログラムの解説: |
|
|
0044: //パラメータの準備 |
|
|
プログラムの流れは簡単である。 変換したい文字列を $_POST['sour'] で受け取り、これを組み込み関数 urlencode によってURL エンコードしている。 ここで気をつけなければならないことがある。URL エンコードする文字コードが何かということである。 "ぱふぅ家" を UTF-8 で URL エンコードすると "%E3%81%B1%E3%81%B5%E3%81%85%E5%AE%B6" となるが、EUC-JP なら "%A4%D1%A4%D5%A4%A5%B2%C8" となる。 いま、大部分の Web サービスは UTF-8 を指定しているが、中には EUC-JP やシフト JIS が残っているところもある。 そこで、事前に組み込み関数 mb_convert_encoding によって文字コードを指定のものに変換しておく。 なお、ユーザー関数 explodeArray は、「PHP でラジオボタンの状態を引き継ぐ」で作成したものだ。 |
参考書籍 |
|
|
|
参考サイト |
|
|
|
|
|
|
|
|
2009年06月18日 作成
2009年06月18日 更新
Copyright by studio pahoo, (C)2009
(※)本ページはリンクフリーですが、複製・転載時にはご一報ください。 ★本ページへのご意見・ご質問・お便りは、ここをクリックしてください。 |