【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エンコードされた文字列をデコードした結果を文字列として返します。

【PHP8.x】rawurldecode関数の使い方 | いっしー@Webエンジニア