rawurldecode

関数の概要

rawurldecodeは、PHPでURLエンコードされた文字列をデコードするための関数です。主に%記号と16進数の組み合わせで表現された文字列を元の文字列に戻す際に使われます。urldecodeと似ていますが、スペースの扱いが異なる点が特徴です。特にRFC 3986準拠のエンコード文字列を処理したい場合に適しています。

パラメータの説明

  • string $str : デコードしたいURLエンコードされた文字列を指定します。

戻り値

デコードされた文字列を返します。エンコードされていない文字はそのまま返されます。

使用例

基本的な使い方

$encoded = 'Hello%20World%21';
$decoded = rawurldecode($encoded);
echo $decoded;  // 出力: Hello World!

「%20」はスペース、「%21」は感嘆符を表しており、これを元の文字列に戻しています。

スペースの扱いの違い

$encoded = 'Hello%20World%21+Test';
echo rawurldecode($encoded);  // 出力: Hello World!+Test
echo urldecode($encoded);     // 出力: Hello World! Test

rawurldecodeは「+」をそのまま「+」として扱いますが、urldecodeは「+」をスペースに変換します。用途に合わせて使い分けましょう。

日本語のURLデコード

$encoded = '%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF';
$decoded = rawurldecode($encoded);
echo $decoded;  // 出力: こんにちは

URLエンコードされた日本語文字列も正しくデコード可能です。

関連する関数

  • urldecode – 「+」をスペースに変換してデコードする
  • urlencode – URLエンコードを行う
  • rawurlencode – RFC 3986準拠のURLエンコードを行う

まとめ

rawurldecodeは、URLエンコードされた文字列を安全かつ正確にデコードするための便利な関数です。特にRFC 3986に準拠したエンコード方式を扱う場合や、スペースを「+」として扱いたくない場合に有効です。PHPでURLを操作する際には、目的に応じてrawurldecodeurldecodeを使い分けることが重要です。