【PHP8.x】curl_unescape関数の使い方

作成日: 更新日:

curl_unescape関数は、URLエンコードされた文字列をデコードする関数です。具体的には、%記号に続く16進数の組み合わせを対応するASCII文字に変換します。この関数は、cURLライブラリを使用してHTTP通信を行う際に、URLに含まれる特殊文字や予約語を正しく解釈するために利用されます。例えば、URLにスペースが含まれている場合、通常は%20としてエンコードされますが、curl_unescape関数を使用することで、元のスペース文字に戻すことができます。

この関数は、第1引数にURLエンコードされた文字列を受け取り、デコードされた文字列を返します。もし入力された文字列がURLエンコードされていない場合や、不正な形式でエンコードされている場合は、可能な限りデコードを試み、結果を返します。エラーが発生した場合でも、通常はNULLではなく、部分的にデコードされた文字列が返されることに注意が必要です。

curl_unescape関数は、特にHTTPリクエストを処理する際に、サーバーから受信したURLエンコードされたデータを扱う場合に役立ちます。例えば、GETリクエストで送信されたパラメータは、URLエンコードされていることが一般的であり、これらのパラメータをアプリケーション内で使用する前に、curl_unescape関数を用いてデコードすることで、元の値を正しく取得することができます。また、この関数は、cURL拡張が有効になっているPHP環境でのみ利用可能です。

基本的な使い方

構文(syntax)

curl_unescape(CurlHandle $handle, string $text): string|false

引数(parameters)

CurlHandle $handle, string $string

  • CurlHandle $handle: curl_init() で返されたCurlHandleオブジェクト
  • string $string: URLエンコードされた文字列

戻り値(return)

string|false

URLエンコードされた文字列をデコードした結果を返します。デコードに失敗した場合はfalseを返します。

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