PHPでURLエンコードを行う

(1/1)
PHPを使ってURLエンコードを行うプログラムを作ってみることにする。

URLエンコードは、Google検索各種WebAPI のパラメータだけでなく、Wikipediaのファイル名としても使われている。日本語を使ってWebサービスを利用する場合には覚えておく必要があるキーワードだ。

(2021年7月10日)PHP8対応,リファラ・チェック追加,大幅改訂

目次

サンプル・プログラムの実行例

PHPでURLエンコードを行う

サンプル・プログラム

URLエンコードの利用シーン

Google検索で "ぱふぅ家のホームページ" を検索すると、URLは "https://www.google.com/search?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&ie=UTF-8" となる。この "q=" 移行の部分が "ぱふぅ家のホームページ" をURLエンコードした結果の文字列である。
Yahoo!検索では "https://search.yahoo.co.jp/search?p=%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&ei=UTF-8" となる。

また、クラウド連携で呼び出す各種WebAPI のパラメータとしても使われる。
たとえば、Yahoo!JAPANの「関連検索ワード」を利用するときには、パラメータ query をURLエンコードする。

日本語のファイル名を扱うことができないようなシステムでは、URLエンコード結果をファイル名にすることが多い。
たとえばWikipediaのページ "https://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89" は「エンコード」の開設をしているが、"wiki/" 以下の部分は「エンコード」をURLエンコードした結果の文字列である。

このように、日本語でWebを利用する際には、あらゆる場面でURLエンコードに出会う。

サンプル・プログラムの解説

プログラムの流れは簡単である。
変換したいテキストをを組み込み関数  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  によって文字コードを指定のものに変換しておく。

参考サイト

(この項おわり)
header