【PHP8.x】rawurldecode関数の使い方
作成日: 更新日:
rawurldecode関数は、RFC 3986に準拠してURLエンコードされた文字列を元の形式にデコードする関数です。ウェブ上でデータを安全に転送するために、URI(Uniform Resource Identifier)内で特殊文字が使用できない場合に、それらを%
の後に16進数2桁で表現するエンコーディングが行われます。この関数は、その%HH
形式でエンコードされた部分を、対応する実際の文字に変換し直します。
例えば、エンコードされた半角スペースである%20
は、この関数によって元の半角スペースに戻されます。また、日本語のようなマルチバイト文字も、UTF-8などの適切な文字コードでエンコードされていれば正しくデコードされます。
PHPには同様のデコードを行うurldecode
関数もありますが、両者には重要な違いがあります。urldecode
関数は+
記号を半角スペースとしてデコードするのに対し、rawurldecode
関数は+
記号を特別なものとして扱わず、そのまま+
記号として保持します。この挙動の違いは、URIのパスセグメントなど、+
がスペースではなく文字としての+
を意味する場合に特に重要です。
主に、ウェブサーバーが受け取ったURLのパス部分やクエリパラメータなどをPHPスクリプトで処理する際に、オリジナルの情報を正しく復元するために使用されます。これにより、URLに含まれる特殊文字やスペースが正しく解釈され、アプリケーションで利用できるようになります。
基本的な使い方
構文(syntax)
<?php
$encodedString = "Hello%20World%21";
$decodedString = rawurldecode($encodedString);
echo $decodedString;
?>
引数(parameters)
string $string
- string $string: URLエンコードされた文字列
戻り値(return)
string
URLエンコードされた文字列をデコードした結果を文字列として返します。