rawurlencode

(PHP 4, PHP 5, PHP 7)

rawurlencodeRFC 3986 に基づき URL エンコードを行う

説明

rawurlencode ( string $str ) : string

指定した文字列を » RFC 3986 にもとづいてエンコードします。

パラメータ

str

エンコードする URL。

返り値

-_.~ を除くすべての非アルファベット文字をパーセント 記号 (%)に続いて 2 つの 16 進数がある表現形式に 置き換えた文字列を返します。これは、文字定数が特殊な URL デリミタと して解釈されたり、URL デリミタが(いくつかの電子メールシステムのような) 転送メディアにより文字変換されて失われてしまったりすることが ないように、» RFC 3986 で定められたエンコーディング方法です。

注意:

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">

参考