概念と使用方法
- PHPバージョン
- 4+
rawurldecode()
関数は
パーセント記号(%
)とその後に続く2桁の16進数でエンコードされた文字を元の文字に復元し、%20
は空白文字に変換するデコード関数です。
この関数はrawurlencode()
関数によって厳密にエンコードされたURIコンポーネント(例:パスセグメント、クエリパラメータ値)をデコードする際に主に使用されます。
基本の例
/* rawurlencode() 関数でクエリパラメータ値をエンコード */
$keyword = 'iPhone & Galaxy/Note=100% #1';
$encoded = rawurlencode($keyword);
echo 'https://example.com/search?query=' . $encoded;
// 出力: 'https://example.com/search?query=iPhone%20%26%20Galaxy%2FNote%3D100%25%20%231'
/* urlencode() でエンコードされたクエリパラメータ値をデコード */
$decoded = rawurldecode($encoded);
echo $decoded;
// 出力: 'iPhone & Galaxy/Note=100% #1'
特徴
- URLエンコードされた文字列を元の文字列にデコードする関数です。
rawurlencode()
関数でエンコードされたURLをデコードするのに最適化されています。%20
は空白に変換されるという特徴があります。
rawurlencode()
関数は、与えられた文字列をRFC 3986に従ってURLで使用可能な形式にエンコードします。
RFC 3986はURLエンコードのための標準であり、アルファベットの大文字・小文字、数字、-
、_
、.
、~
以外のすべての文字は、2桁の16進数の数字に続くパーセント(%
)記号で置き換えられます。また、空白は %20
にエンコードされます。
構文
rawurldecode(string $string): string
引数
$string |
デコードする対象のエンコード済みURL文字列です。 |
---|
戻り値
エンコードされたURL文字列 $string
をデコードし、デコードされた文字列を返します。
使用例
$server_url = 'https://www.example.com';
$image_path = '/images/my image.jpg';
// ファイルパスをURLに追加する際に rawurlencode() 関数を使用
$encoded_image_path = rawurlencode($image_path);
$image_url = $server_url . $encoded_image_path;
echo $image_url . '<br>';
// 出力: 'https://www.example.com%2Fimages%2Fmy%20image.jpg'
$rawurlencode_image_path = rawurldecode($image_path);
echo $rawurlencode_image_path;
// 出力: '/images/my image.jpg'
ファイルパスには空白(''
)、スラッシュ(/
)などの特殊文字が含まれることがあります。
上の例では、ファイルパスに含まれる空白やスラッシュを rawurlencode()
関数を使用してURLに安全に追加し、最終的に画像URLを生成します。こうすることで、ファイルパスの特殊文字がURLの規則に従いつつ、ウェブ上で正しく処理されます。
このように rawurlencode()
関数でエンコードされたものは、rawurldecode()
関数を使用してデコードすると、安全に元の文字列に復元されます。