ホームページ >バックエンド開発 >PHPチュートリアル >PHP は URL パラメータをエンコードおよびデコードします

PHP は URL パラメータをエンコードおよびデコードします

伊谢尔伦
伊谢尔伦オリジナル
2017-04-20 13:48:0221434ブラウズ

1. URL によって渡されるパラメータをエンコードする

URL を使用してパラメータ データを渡すとは、URL アドレスの後に適切なパラメータを追加することを意味します。 URL エンティティはこれらのパラメータを処理します。使用方法は次のとおりです:

PHP は URL パラメータをエンコードおよびデコードします

明らかに、この方法ではパラメーターが公開され、安全係数が低くなります。したがって、この章では、この問題に対する URL エンコード方法、つまり URL によって渡されるパラメーターをエンコードする方法について説明します。

URL エンコーディングは、ブラウザーがフォーム入力データをパッケージ化するために使用する形式で、アドレス バーを使用してパラメーターを渡すためのエンコーディング ルールです。パラメータにスペースが含まれている場合、URL を使用してパラメータを渡すとエラーが発生します。これにより、スペースは %20 に変換されます。 中国語のエンコードも童謡の例です。最も重要な点は、それが渡されるパラメータの中で隠れた役割を果たしているということです。

推奨マニュアル: php完全独習マニュアル

PHPのquery文字列のURLエンコードは、urlencode()関数を通じて実現できます。 関数の構文は次のとおりです。

urlencode(string )

urlencode() 関数は、文字列の URL エンコードを実装します。

次の例では、urlencode() 関数を使用して、URL によって渡されるパラメーター値をエンコードします。表示される文字列は、

URL でエンコードされた文字列です。

<?php
  $url = urlencode(&#39;PHP中文网&#39;);  //把 PHP中文网 进行编码
  echo "index.php?id=".$url;
?>

ブラウザーで次のように入力します。実行中のアドレスを入力して Enter を押すと、以下に示す実行結果が表示されます:

index.php?id=PHP%E4%B8%AD%E6%96%87%E7%BD%91

手順:

サーバーにとっては、エンコード前後の文字列に違いはなく、自動的に認識できます。ここでの主な目的は、URL エンコードの使用方法を説明することです。実際のアプリケーションでは、一部の非機密パラメータはエンコードする必要がなく、リーダーは実際の状況に応じてそれらを選択して使用できます。

2. URL によって渡されたパラメータをデコードします

$_GET[] メソッドを使用して、URL によって渡されたパラメータを直接取得できます。 URL 暗号化されたクエリ文字列の場合、取得された文字列は urldecode() 関数を通じてデコードされる必要があります。この関数の構文は次のとおりです:

urldecode(string)

urldecode() 関数は、URL エンコードされた文字列 string をエンコードできます。

上記の例では、urlencode() 関数は「PHP 中国語 Web サイト」をエンコードし、

「PHP%E4%B8%AD%E6%96%87%E7%BD%91」

に変換します。

ここの例では、urlencode()関数を使用して、取得したエンコーディングをデコードし、デコード結果を出力します。実装されたコードは次のとおりです:

<?php
 $url = urldecode("PHP%E4%B8%AD%E6%96%87%E7%BD%91");  // 把编码还原成 PHP中文网
 echo  $url;
?>

実行結果は次のとおりです:

PHP 中国語の Web サイト

ここでは、urldecode() 関数が、urlencode() 関数によってエンコードされた文字列をエンコードしていることが明確にわかります。

おすすめ関連記事:

1.PHP は URL エンコードを実行するために urlencode() 関数をどのように使用しますか? (コード例)
2.
PHP は URL 内の中国語の文字をどのようにエンコードおよびデコードしますか? (写真 + ビデオ)
関連ビデオの推奨:
1.Dugu Jiijian (4)_PHP ビデオ チュートリアル

以上がPHP は URL パラメータをエンコードおよびデコードしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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