rawurlencode

(PHP 4, PHP 5, PHP 7, PHP 8)

rawurlencode按照 RFC 3986 對 URL 進(jìn)行編碼

說明

rawurlencode(string $str): string

根據(jù) ? RFC 3986 編碼指定的字符。

參數(shù)

str

要編碼的 URL。

返回值

返回字符串,此字符串中除了 -_. 之外的所有非字母數(shù)字字符都將被替換成百分號(%)后跟兩位十六進(jìn)制數(shù)。這是在 ? RFC 3986 中描述的編碼,是為了保護(hù)原義字符以免其被解釋為特殊的 URL 定界符,同時保護(hù) URL 格式以免其被傳輸媒體(像一些郵件系統(tǒng))使用字符轉(zhuǎn)換時弄亂。

注意:

在 PHP 5.3.0 之前,rawurlencode 根據(jù) ? RFC 1738 來編碼波浪線(~)。

更新日志

版本 說明
5.3.4 因?yàn)?rawurlencode() 使用了 EBCDIC,所以波浪線字符不會再被編碼。
5.3.0 現(xiàn)在符合了? RFC 3986。

范例

示例 #1 在 FTP URL 里包含一個密碼

<?php
echo '<a href="ftp://user:'rawurlencode('foo @+%/'),
     
'@ftp.example.com/x.txt">';
?>

以上例程會輸出:

<a href="ftp://user:foo%20%40%2B%25%2F@ftp.example.com/x.txt">

或者,如果你想通過 URL 的 PATH_INFO 構(gòu)成部分去傳遞信息:

示例 #2 rawurlencode() 示例 2

<?php
echo '<a ,
    
rawurlencode('sales and marketing/Miami'), '">';
?>

以上例程會輸出:

<a >

參見