PHP での URL エンコード

Shraddha Paghdar 2023年1月30日
  1. PHP で urlencode() を使用して URL をエンコードする
  2. PHP で rawurlencode() を使用して URL をエンコードする
PHP での URL エンコード

URL には、誰かのフルネーム、別のリダイレクト URL、パスワードなどのパスとクエリのパラメータが含まれる場合があります。これらには、スペースや $ & : /などの文字など、ASCII セット外の特殊文字を含めることができます。

したがって、インターネット経由で送信する前に、URL を正規の ASCII 形式に再生成する必要があります。そうしないと、HTTP プロトコルに干渉する可能性があります。

今日の記事では、PHP で URL をエンコードする方法を学びます。

PHP は、URL をエンコードするための 2つの関数を提供します。

PHP で urlencode() を使用して URL をエンコードする

これは、URL をエンコードするために使用される PHP によって提供される組み込み関数です。この関数は、安全でない ASCII 文字を%の後に 2 桁の 16 進数で置き換えます。この関数は、application/x-www-form-urlencoded に従ってエンコードします。URL にスペースを含めることはできないため、この関数はスペースをプラス+ 記号に置き換えます。特殊文字は、いくつかの事前定義されたルールに基づいて、非常に特殊な形式で再生成されます。

urlencode() の構文

urlencode(string $input);

パラメーター

$input:これは必須パラメータであり、エンコーディングが実行される文字列入力 URL のみを受け取ります。

戻り値

-_. を除くすべての英数字以外の文字を含む文字列を返します。これらの文字は%記号に置き換えられ、その後に 2 桁の 16 進数が続きます。

コード例:

<?php
    echo urlencode("https://www.google.co.in/") . "\n";
    echo urlencode("https://www.google.com/") . "\n";
?>

出力:

https%3A%2F%2Fwww.google.co.in%2F
https%3A%2F%2Fwww.google.com%2F

PHP で rawurlencode() を使用して URL をエンコードする

これは PHP が提供する組み込み関数であり、RFC 3986 に従って特定の URL(Uniform Resource Locator)文字列をエンコードできます。プレーンなパーセントエンコードに従ってエンコードします。これは、リテラル文字が特別な URL 区切り文字として解釈されるのを防ぎ、(一部の電子メールシステムのように)文字変換を伴う伝送メディアによって URL が壊されるのを防ぐために使用されます。

記号またはスペース文字は、パーセント(%)記号の後に 2 桁の 16 進数で置き換えられます。

rawurlencode() の構文

rawurlencode(string $input);

パラメーター

$input:エンコードが実行される文字列入力 URL のみを受け取る必須パラメータです。

戻り値

-_.~記号を除くすべての英数字以外の文字を含むエンコードされた文字列を返します。

コード例:

<?php
   echo '<a href="http://testdomain.com/', rawurlencode('subscribers and admins/India'), '">';
?>

出力:

<a href="http://testdomain.com/subscribers%20and%20admins%2FIndia">

urlencode() 関数と rawurlencode() 関数の唯一の違いは、最初にスペースを+ としてエンコードし、後で%20 としてエンコードすることです。また、~urlencode() でエンコードされますが、rawurlencode() ではエンコードされません。クエリコンポーネントをエンコードする場合は、urlencode() を使用し、パスセグメントをエンコードする場合は、rawurlencode() を使用します。

Shraddha Paghdar avatar Shraddha Paghdar avatar

Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.

LinkedIn