(PHP 4, PHP 5, PHP 7, PHP 8)
rawurlencode — 按照 RFC 3986 對(duì) URL 進(jìn)行編碼
str
要編碼的 URL。
返回字符串,此字符串中除了
-_.
之外的所有非字母數(shù)字字符都將被替換成百分號(hào)(%
)后跟兩位十六進(jìn)制數(shù)。這是在
? RFC 3986 中描述的編碼,是為了保護(hù)原義字符以免其被解釋為特殊的
URL 定界符,同時(shí)保護(hù) URL
格式以免其被傳輸媒體(像一些郵件系統(tǒng))使用字符轉(zhuǎn)換時(shí)弄亂。
注意:
在 PHP 5.3.0 之前,rawurlencode 根據(jù) ? RFC 1738 來(lái)編碼波浪線(
~
)。
版本 | 說(shuō)明 |
---|---|
5.3.4 | 因?yàn)?rawurlencode() 使用了 EBCDIC,所以波浪線字符不會(huì)再被編碼。 |
5.3.0 | 現(xiàn)在符合了? RFC 3986。 |
示例 #1 在 FTP URL 里包含一個(gè)密碼
<?php
echo '<a href="ftp://user:', rawurlencode('foo @+%/'),
'@ftp.example.com/x.txt">';
?>
以上例程會(huì)輸出:
<a href="ftp://user:foo%20%40%2B%25%2F@ftp.example.com/x.txt">
或者,如果你想通過(guò) URL 的 PATH_INFO 構(gòu)成部分去傳遞信息:
示例 #2 rawurlencode() 示例 2
<?php
echo '<a ,
rawurlencode('sales and marketing/Miami'), '">';
?>
以上例程會(huì)輸出:
<a >