URL編碼(URL encoding),也稱作百分號編碼(Percent-encoding), 是一種特定的上下文的統一資源定位符(URL)的編碼機制。

国产视频appurlencode()函數,可以將指定的字符串以url編碼的形式進行編碼。它同樣也是PHP中的一個內置函數,與之相反的urldecode()函數可以對URL編碼進行解碼,下面這篇文章就分別講解一下PHP中的urlencode()函數與urldecode()函數的作用與用法。

QQ截圖20190806125220.jpg

PHP urlencode()函數

urlencode():用于字符串編碼并將其用于 URL 的請求部分.

語法:

urlencode (string)

參數:

string:必需,用于待編碼的字符串

例:PHP使用urlencode()函數進行url編碼

示例1:

<?php
$str = 'http://xswdd.cn';
echo urlencode($str);
?>

輸出結果:

http%3A%2F%2Fxswdd.cn

注:urlencode()函數將除字母以外的內容都被編碼

示例2:

<?php
$str = 'http://xswdd.cn?id=1&s=o';
echo urlencode($str);
?>

輸出結果:

http%3A%2F%2Fxswdd.cn%3Fid%3D1%26s%3Do

注:urlencode()函數將網址后面所帶的參數也全部被編碼

示例3:

<?php
$str = '飛鳥慕魚博客,作者mochu';
echo urlencode($str);
?>

輸出結果:

%E9%A3%9E%E9%B8%9F%E6%85%95%E9%B1%BC%E5%8D%9A%E5%AE%A2%EF%BC%8C%E4%BD%9C%E8%80%85mochu

注:urlencode()函數將除字母以外的漢字全部被編碼

示例4:

<?php
$str = '作者:mochu 手機號:123456789';
echo urlencode($str);
?>

輸出結果:

%E4%BD%9C%E8%80%85%EF%BC%9Amochu+%E6%89%8B%E6%9C%BA%E5%8F%B7%EF%BC%9A123456789

国产视频app注:urlencode()函數將除字母以及數字以處的內容全部被編碼

示例5:

<?php
//注意:字符串的最后一位是空格
$str = 'feiniaomy.com-mochu-_ ';
echo urlencode($str);
?>

輸出結果:

feiniaomy.com-mochu-_+

urlencode()函數總結:

国产视频app1、urlencode()函數可以將非字母以及數據之外的內容進行編碼

国产视频app2、編碼的形式以百分號(%)后跟兩位十六進制數進行轉換

国产视频app3、字符“-”和字符“_”不會被編碼,保留原樣輸出,參考示例5

国产视频app4、空格的編碼為+ (加號),參考示例5

PHP urldecode() 函數

urldecode():解碼已編碼的 URL 字符串

語法:

urldecode (string)

參數:

string:要解碼的字符串

例:urldecode()在php中的使用方法

示例1:

<?php
//聲明一下頁面的編碼,防止輸出中文時亂碼
header("Content-type: text/html; charset=utf-8");
$str = '飛鳥慕魚博客';
$str2 = urlencode($str);
echo $str2;
echo '<br/>';
echo urldecode($str2);
?>

輸出結果:

%E9%A3%9E%E9%B8%9F%E6%85%95%E9%B1%BC%E5%8D%9A%E5%AE%A2
飛鳥慕魚博客

示例2:

<?php
$str = 'http://www.baidu.com';
$str2 = urlencode($str);
echo $str2;
echo '<br/>';
echo urldecode($str2);
?>

輸出結果:

http%3A%2F%2Fwww.baidu.com
http://www.baidu.com

補充內容:

1、php超全局變量$_GET與$_REQUEST對提交的參數會自動解碼,無需二次操作

国产视频app2、PHP的$_COOKIE變量需要 urldecode 解碼

国产视频app3、urlencode()與urldecode()在其它編程語言中也有所涉及,比如ASP,JSP,C#等