urldecode

関数の概要

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連携の現場で非常に役立つ基本的な関数のひとつなので、ぜひ活用してください。