ホームページ >バックエンド開発 >PHPチュートリアル >PHPのURLエンコード関数urlencode()の解析について
この記事では、主に PHP の URL エンコード関数の分析を紹介します。これには、必要な参考値があります。
URLEncode: を参照してください。 Web ページの URL 内の中国語の文字をエンコードして変換する方法。最も一般的な方法は、Baidu や Google などの検索エンジンに中国語のクエリが入力されたときに、エンコードされた Web ページの URL を生成することです。
URLEncode には通常 2 つの方法があり、1 つは GB2312 に基づく従来のエンコード (Baidu、Yisou などで使用)、もう 1 つは UTF-8 エンコードに基づく (Google、Yahoo、等。)。
このツールは、エンコードとデコードの 2 つのメソッドをそれぞれ実装します:
中文-> GB2312 のエンコード ->
中文-> UTF-8 のエンコード## Html での URLEncode:
GB2312 としてエンコードされた HTML ファイル内: http://s.php.cn/中文.rar -> ブラウザは自動的に http://s.php.cn /� に変換します。 ����.rar
注: Firefox はデフォルトで URL を UTF-8 エンコードで送信するため、GB2312 エンコードの中国語 URL をサポートしていませんが、ftp:// プロトコルは問題なく使用できたと思います。これは Firefox のバグと考えるべきです。
UTF-8 としてエンコードされた HTML ファイル内: http://s.php.cn/中文.rar -> ブラウザは自動的に http://s.php.cn/中文.rar に変換します。
PHP での URLEncode:
<?php //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"; //中文-_. ?>「-_.」を除くすべての非英数字は、パーセント記号「%」とそれに続く 2 つの 16 進数に置き換えられます。
urlencode と rawurlencode の違い: urlencode はスペースをプラス記号 " " としてエンコードし、rawurlencode はスペースをプラス記号 " " としてエンコードします。
UTF-8 エンコードを使用する場合は、2 つの方法があります:
1. ファイルを UTF-8 ファイルとして保存し、urlencode または rawurlencode を直接使用します。
2. mb_convert_encoding 関数を使用します:
<?php $url = 'http://s.php.cn/中文.rar'; echo urlencode(mb_convert_encoding($url, 'utf-8', 'gb2312'))."\n"; echo rawurlencode(mb_convert_encoding($url, 'utf-8', 'gb2312'))."\n"; //http%3A%2F%2Fs.jb51.net%2F%E4%B8%AD%E6%96%87.rar ?>例: JavaScript での
<?php function parseurl($url="") { $url = rawurlencode(mb_convert_encoding($url, 'gb2312', 'utf-8')); $a = array("%3A", "%2F", "%40"); $b = array(":", "/", "@"); $url = str_replace($a, $b, $url); return $url; } $url="ftp://ud03:password@s.php.cn/中文/中文.rar"; echo parseurl($url); //ftp://ud03:password@s.php.cn/%D6%D0%CE%C4/%D6%D0%CE%C4.rar ?>URLEncode:
例: Chinese-_
encodeURI ではありません。次の文字を正しくエンコードします:「:」、「/」、「;」、「?」、「@」およびその他の特殊文字。
例: http://s.php.cn/中文.rarhttp://s.jb51.net/中文.rar
PHP は WeChat パブリック プラットフォームのエンタープライズ アカウント検証インターフェイスを実装します
以上がPHPのURLエンコード関数urlencode()の解析についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。