ホームページ  >  記事  >  バックエンド開発  >  PHP で URL エンコーディングを実装するいくつかの方法の簡単な分析

PHP で URL エンコーディングを実装するいくつかの方法の簡単な分析

PHPz
PHPzオリジナル
2023-04-04 14:29:192507ブラウズ

インターネットの普及に伴い、データ送信はますます一般的になってきています。ネットワーク通信では、一部のデータを URL で認識できる形式に変換する必要があることが多く、これには URL エンコードの概念が導入されます。 PHP 言語には、URL エンコードの実装に大きな役割を果たす豊富な組み込み関数ライブラリもあります。

1. URLエンコーディングの概念

URLの正式名称は英語でUniform Resource Locator(Uniform Resource Locator)といい、インターネット上のリソースを識別するアドレスであり、一般的には次のようになります。プロトコルヘッダー、ドメイン名、パスなど。 URL エンコードとは、URL の特殊文字を認識可能な形式にエンコードすることです。

言語ごとに実装される URL エンコード方法は異なりますが、アドレス自体との混同を避けるために、URL 内の特殊文字はすべてエスケープまたは置換されます。

2. URL エンコードにおける一般的な特殊文字

一般的な URL 特殊文字は次のとおりです:

  1. スペース: URL アドレスでは、スペースは " としてエンコードされます。 " (ASCII 値は 0x20)。
  2. 英語の文字と数字を除くすべての文字は、「%xy」の形式にエンコードされます。ここで、xy は文字の ASCII コードの 16 進表現です。例: 「%」文字の ASCII コードは 0x25 であるため、URL エンコードでは、この文字は「%」としてエンコードされます。
  3. " " 文字: スペースと同様に、" " としてエンコードされます。

3. PHP の URL エンコード関数

PHP には、urlencode()、rawurlencode()、urlencode()、http_build_query() など、多くの URL エンコード関数があります。 。以下では、URL エンコードを実装するさまざまな方法を見てみましょう。

  1. urlencode()

urlencode() 関数は、PHP の組み込み URL エンコード関数です。 URL 内の文字をエンコードし、URL 内の特殊文字を特定の文字列に置き換えます (たとえば、「 」はスペースなどを表します)。

次は、urlencode() 関数の構文です。

string urlencode ( string $str )

説明:

$str: エンコードする必要がある文字列。

次は、urlencode() 関数の使用例です:

<?php
$str = "编码和解码 URL 中的字符串";
echo urlencode($str);
?>

出力結果:

%E7%BC%96%E7%A0%81%E5%92%8C%E8%A7%A3%E7%A0%81%20URL%20%E4%B8%AD%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2
  1. rawurlencode()
# #rawurlencode( ) 関数は、PHP に組み込まれた URL エンコード方式です。 urlencode() 関数とは異なり、スペースはエンコードされません。この関数は、URL 内の英数字以外の文字をすべて %XX 形式にエンコードします。XX は文字の ASCII コードの 16 進表現です。

以下は、rawurlencode() 関数の構文です。

string rawurlencode ( string $str )
説明:

$str: エンコードする必要がある文字列。

次に、rawurlencode() 関数の使用例を示します。

<?php
$str = "编码和解码 URL 中的字符串";
echo rawurlencode($str);
?>
出力結果:

%E7%BC%96%E7%A0%81%E5%92%8C%E8%A7%A3%E7%A0%81%20URL%20%E4%B8%AD%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2
#http_build_query()
  1. # #http_build_query( ) 関数は、URL エンコード仕様に従って配列をエンコードし、エンコードされた文字列を返すことができます。
http_build_query() 関数の構文は次のとおりです。

string http_build_query ( mixed $query_data [, string $numeric_prefix = NULL [, string $arg_separator = NULL [, int $enc_type = PHP_QUERY_RFC1738 ]]] )
説明:

$query_data: エンコードする必要がある配列。

$numeric_prefix: 配列キーのプレフィックス。デフォルト値はプレフィックスのない「null」です。

$arg_separator: エンコードされた文字列の区切り文字。デフォルトは「&」です。

$enc_type: URL エンコード方式。デフォルト値は PHP_QUERY_RFC1738 で、URL エンコードの RFC1738 標準方式を示します。

以下は http_build_query() の使用例です:

<?php
$data = array(
    &#39;name&#39; => 'Alice',
    'age' => 25,
    'address' => 'New York'
);
echo http_build_query($data);
?>
出力結果:

name=Alice&age=25&address=New+York
上記は、PHP で URL エンコーディングを実装するいくつかの方法であり、それぞれ独自の方法があります。長所と短所、および特定のニーズに応じて使用することを選択してください。 PHP 開発者にとって、これらのエンコード方法と対応する関数ライブラリを理解すると、URL エンコードが容易になります。

以上がPHP で URL エンコーディングを実装するいくつかの方法の簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。