関数の概要
urldecode は、URLエンコードされた文字列を元の形式にデコードするためのPHP関数です。たとえば、URL内で特殊文字や日本語などが%記号と16進数の組み合わせに変換されている場合、それを読みやすい文字列に戻します。WebアプリケーションでURLパラメータを取得・処理する際によく使われます。
パラメータの説明
string $str:デコード対象のURLエンコードされた文字列を指定します。この文字列内の%記号に続く16進数表現が元のバイトに変換されます。
戻り値
引数で渡したURLエンコードされた文字列をデコードした結果の文字列を返します。エンコードされていない部分はそのまま返されます。
使用例
基本的な使い方
$encoded = "Hello%20World%21";
$decoded = urldecode($encoded);
echo $decoded; // 出力: Hello World!
この例では、スペースが %20 に、感嘆符が %21 にエンコードされた文字列を元に戻しています。
日本語のURLデコード
$encoded = "%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A";
$decoded = urldecode($encoded);
echo $decoded; // 出力: あいうえお
日本語の文字列をURLエンコードしたものをデコードし、元の日本語を表示しています。マルチバイト文字も正しくデコードされます。
GETパラメータのデコード例
$query = "name=%E9%87%8E%E8%8F%9C&age=25";
parse_str($query, $params);
$name = urldecode($params['name']);
echo $name; // 出力: 野菜
echo $params['age']; // 出力: 25
URLクエリ文字列を配列にパースした後、名前のパラメータ部分を urldecode でデコードする例です。実務でURLパラメータを扱うときによく使います。
関連する関数
urlencode()– URLエンコードを行う関数rawurldecode()– RFC 3986に準拠したURLデコードを行う関数rawurlencode()– RFC 3986に準拠したURLエンコードを行う関数
まとめ
urldecode は、URLでエンコードされた文字列を元に戻す際に必須のPHP関数です。GETパラメータの処理やURLのデコードに使いやすく、日本語を含むマルチバイト文字にも対応しています。Webアプリ開発やAPI連携の現場で非常に役立つ基本的な関数のひとつなので、ぜひ活用してください。
