按照 RFC 3986 對 URL 進行編碼

rawurlencode

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

rawurlencode按照 RFC 3986 對 URL 進行編碼

說明

rawurlencode(string $str): string

根據 » RFC 3986 編碼指定的字元。

參數

str

要編碼的 URL。

返回值

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

注意:

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

更新日誌

版本 說明
5.3.4 因為 rawurlencode() 使用了 EBCDIC,所以波浪線字元不會再被編碼。
5.3.0 現在符合了» 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%[email protected]/x.txt">

或者,如果你想通過 URL 的 PATH_INFO 構成部分去傳遞資訊:

示例 #2 rawurlencode() 示例 2

<?php
echo '<a href="http://example.com/department_list_script/',
    
rawurlencode('sales and marketing/Miami'), '">';
?>

以上例程會輸出:

<a href="http://example.com/department_list_script/sales%20and%20marketing%2FMiami">

參見

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *