php urlencode()与urldecode()函数字符编码原理详解_php技巧
其原理就是把中文字符转换为十六进制并按某种规则进行字符串组合,实现字符的编码与解编码,保证URL数据传递过程中字符的完整性和兼容性,主要讨论中文字符的编码情况。
一,FireFox浏览器编码中文字符
在Firefox浏览器下如果输入中文字符,将会自动实现URL编码,如下
按下Enter键前
按下Enter键后
二,urlencode()函数原理
urlencode()函数用于编码URL字符串,这里主要讨论中文字符的编码情况,
实例如下
echo urlencode('不要迷恋哥');//输出:%B2%BB%D2%AA%C3%D4%C1%B5%B8%E7
urlencode()函数原理就是首先把中文字符转换为十六进制,然后在每个字符前面加一个标识符%,了解了这个原理,可以实现自定义的URL编码函数,代码如下
$string = "不要迷恋哥";
$length = strlen($string);
echo $string;
$result = array();
//十进制
for($i=0;$iif(ord($string[$i])>127){
$result[] = ord($string[$i]).' '.ord($string[++$i]);
}
}
var_dump($result);
//十六进制
$strings = array();
foreach($result as $v){
$dec = explode(" ",$v);
$strings[] = "%".dechex($dec[0])." "."%".dechex($dec[1]);
}
var_dump($strings);
然后对输出的结果与直接使用urlencode()编码的字符进行比较,如上:%B2%BB%D2%AA%C3%D4%C1%B5%B8%E7
通过上面实例可知,使用urlencode()函数编码中文字符实质上就是把字符转换为十六进制再在第个字符左边加上一个特殊的标识符%
三,urldecode()函数原理
使用urldecode()函数解码已编码的 URL 字符串,实例如下
echo urldecode('%B2%BB%D2%AA%C3%D4%C1%B5%B8%E7');//输出:不要迷恋哥
urldecode()函数与urlencode()函数原理相反,用于解码已编码的 URL 字符串,其原理就是把十六进制字符串转换为中文字符,结合上面实例,同样可实现自定义函数解码字符串
$string = '%B2%BB%D2%AA%C3%D4%C1%B5%B8%E7';
$length = strlen($string);
$hexs = array();
for($i=0;$iif($string[$i] == '%'){
$hexs[] = $string[++$i].$string[++$i];
}
}
$num = count($hexs);
for($i=0;$iecho chr(hexdec($hexs[$i])).chr(hexdec($hexs[++$i]));
}
上面实例代码首先按字符串的规则取出各个字符的十六进制,然后使用hexdec()函数把十六进制转换为十进制,然后再使用chr()函数把十进制转换为字符,实现十六进制转换为字符。输出结果如下
urlencode
(PHP 3, PHP 4, PHP 5)
urlencode -- 编码 URL 字符串
说明
string urlencode ( string str )
返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样。由于历史原因,此编码在将空格编码为加号(+)方面与 RFC1738 编码(参见 rawurlencode())不同。此函数便于将字符串编码并将其用于 URL 的请求部分,同时它还便于将变量传递给下一页
urldecode
(PHP 3, PHP 4, PHP 5)
urldecode -- 解码已编码的 URL 字符串
说明
string urldecode ( string str )
解码给出的已编码字符串中的任何 %##。返回解码后的字符串。
五,参考资源
urlencode()说明
urldecode()说明

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP の urldecode() 関数は PHP4 で作成され、一般的な URL デコード方法です。 URL エンコードは、URL をサーバーに送信したり、URL を処理したりするために、URL 内の英語以外の文字を特殊文字に変換する方法です。 urldecode() 関数は、これらの特殊文字を元の文字列に復元します。この関数の構文は次のとおりです。 stringurldecode(string$str) パラメータ str は、デコードする必要がある文字を表します。

PHP の urlencode() 関数: 文字列を URL セーフな形式にエンコードする方法、具体的なコード例が必要です。インターネットの発展に伴い、URL は日常生活で広く使用されており、多くの場合、いくつかの特殊文字を使用して文字列をエンコードする必要があります。 URL セーフ形式への変換 URL でパラメータを渡すか、Web ページを要求する形式。 PHP には、このタスクを実行するための urlencode() 関数が用意されています。この記事では、urlencode() 関数の使用法を紹介し、具体的なコード例をいくつか示します。 1. 君

最新の開発では、URL を介してデータを渡すことが一般的な方法です。ただし、URL にはスペース、スラッシュ、疑問符などの特殊文字が含まれる場合があるため、これらの特殊文字によって URL の構造が破壊され、データ送信が失敗する原因になります。この状況を回避するために、PHP は URL を転送可能な形式にエンコードできる urlencode 関数を提供します。 urlencode 関数の使用は非常に簡単で、その構文は次のとおりです。

PHP の urldecode() 関数は、URL をデコードし、エスケープされた文字を元の文字に戻すために使用されます。 URL 内のパラメータを処理する場合、多くの場合、urldecode() 関数を使用する必要があります。 urldecode() 関数の構文は次のとおりです。 stringurldecode(string$str) ここで、$str はデコードされる URL 文字列です。 urldecode() 関数は、文字列内の %xx を対応する文字 xx に置き換えます。

PHP 関数の紹介 - urlencode(): URL のエンコード Web アプリケーションを開発するとき、URL をエンコードする必要がある状況によく遭遇します。 URL エンコードにより、URL 内の特殊文字が正しく渡され、問題や不正確な結果が回避されます。 PHP では、urlencode() 関数を使用して URL エンコードを実行できます。 urlencode() 関数の機能は、文字列を URL 仕様に準拠したエンコード形式に変換することです。文字列内の英数字以外の文字を次のように変換します。

使用法: 1. 辞書のエンコードに使用; 2. リストのエンコードに使用; 3. ネストされたリストのエンコードに使用; 4. 区切り文字などの指定

urllib.urlencode() 関数を使用して Python2.x でパラメータをエンコードする方法 プログラミング プロセス中、多くの場合、サーバーと対話してパラメータを渡す必要があります。パラメータを渡すプロセスでは、データの正しい送信と解析を保証するためにパラメータを適切にエンコードする必要があります。 Python は urllib ライブラリを提供します。このライブラリでは、urlencode() 関数がパラメータをエンコードするために使用されるツールです。 Python2.xを見てみましょう

PHP では、パラメーターを正しく渡すために、URL 内の特殊文字をエンコードする必要があることがよくあります。このとき、urlencode 関数を使用できます。 urlencode 関数の機能は、文字列内の特殊文字をエンコードして、URL に渡せるようにすることです。これらの特殊文字には、英数字、句読点、プロトコル文字、一部の予約文字などが含まれます。 urlencode 関数の基本構文は次のとおりです: urlencode(string$str):str
