ホームページ > バックエンド開発 > PHPチュートリアル > URL エンコードの問題を解決するための PHP 関数 urlencode()、urldecode()、rawurlencode()、rawurldecode()_PHP チュートリアル

URL エンコードの問題を解決するための PHP 関数 urlencode()、urldecode()、rawurlencode()、rawurldecode()_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:30:55
オリジナル
1072 人が閲覧しました

PHP には、Web ページの URL エンコードとデコードの問題を解決するための、urlencode()、urldecode()、rawurlencode()、および rawurldecode() などの関数があります。

urlencode について:

urlencode: Web ページ URL 内の漢字のエンコードおよび変換方法を指します。最も一般的なものは、Baidu や Google などの検索エンジンに中国語のクエリが入力されると、エンコードされた Web ページ URL が生成されます。一般に、urlencoding には 2 つの方法があります。1 つは従来の GB2312 ベースのエンコード (Baidu、Yisou などで使用)、もう 1 つは utf-8 ベースのエンコード (Google、Yahoo などで使用) です。この記事では、エンコードとデコードの 2 つの方法をそれぞれ分析します。

中国語 -> GB2312 のエンコード -> %D6%D0%CE%C4 中国語 -> utf-8 のエンコード -> %E4%B8%AD%E6%96%87

HTML の URL:

GB2312 としてエンコードされた HTML ファイル内:

http://www.phpernote.com/中文.rar -> ブラウザは自動的に http://www.phpernote.com/%D6%D0%CE%C4.rar
に変換します。 注: Firefox はデフォルトで utf-8 エンコードで URL を送信するため、GB2312 エンコードで中国語の URL を適切にサポートしていませんが、ftp:// プロトコルは問題ありません。これは Firefox のバグであると考えてください。

utf-8としてエンコードされたhtmlファイル内:

http://www.phpernote.com/中文.rar -> ブラウザは自動的に http://www.phpernote.com/%E4%B8%AD%E6%96%87.rar に変換します。
PHP の URL:

リーリー

-_ を除くすべての非英数字は、パーセント記号 (%) とそれに続く 2 つの 16 進数に置き換えられます。

urlencode と rawurlencode の違い:

urlencode はスペースをプラス記号 (+) としてエンコードします

rawurlencode はスペースをプラス記号 (%20) としてエンコードします

私の最後のバージョンの txt ファイル分割ツール (オンライン) コードでは urlencode を使用していましたが、この問題は今まで一度も見つかりませんでした。その結果、スペースを含むすべての URL を解析できず、分割ファイルをダウンロードできなくなりました。 。 rawurlencode() 関数を使用すると、この問題が解決されます。

utf-8 エンコードを使用したい場合は、2 つの方法があります:

1. ファイルを utf-8 ファイルとして保存します。urlencode または rawurlencode を直接使用します。 2. mb_convert_encoding 関数を使用します。

リーリー
応用例:

//GB2312的Encode
echo urlencode("中文-_. ")."\n"; //%D6%D0%CE%C4-_.+
echo urldecode("%D6%D0%CE%C4-_. ")."\n"; //中文-_.
echo rawurlencode("中文-_. ")."\n"; //%D6%D0%CE%C4-_.%20
echo rawurldecode("%D6%D0%CE%C4-_. ")."\n"; //中文-_.
ログイン後にコピー

興味がありそうな記事

JavaScriptの文字列エンコーディング関数escape、encodeURI、encodeURIComponentの比較と分析

phpの文字列置換関数str_replaceはpreg_replaceより速い
  • PHPは連続した数字(文字)の配列関数を生成します range()解析、PHP宝くじプログラム関数
  • PHPの文字列関数全まとめ
  • ID番号から誕生日を抽出しマイナーかどうかを検証するphp関数
  • 配列内での検索特定の値が存在するかどうか(in_array()) 、array_search()、array_key_exists())
  • PHP関数memory_get_usageを使用して、プログラムのパフォーマンスを最適化するために現在のPHPメモリ消費量を取得します
  • メールの送信SMTPエラーSMTPホストに接続できませんでした送信失敗の解決策
http://www.bkjia.com/PHPjc/764188.html

www.bkjia.com

http://www.bkjia.com/PHPjc/764188.html技術記事 PHP には、Web ページの URL エンコードとデコードの問題を解決する、urlencode()、urldecode()、rawurlencode()、および rawurldecode() などの関数があります。 urlencode を理解する: urlencode: Web ページ URL 内の... を参照します。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート