rawurlencode: RFC 3986 に基づき URL エンコードを行う (URL 関数) - PHPプロ!マニュアル

PHPマニュアル

rawurlencode: RFC 3986 に基づき URL エンコードを行う

rawurlencode

(PHP 4, PHP 5)

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

説明

string rawurlencode ( string $str )

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

パラメータ

str

エンコードする URL。

返り値

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

注意:

PHP 5.3.0 より前のバージョンでは、rawurlencode はチルダ (~) もエンコードしていました。これは » RFC 1738 で定められた方法です。

変更履歴

バージョン 説明
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%2F@ftp.example.com/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">

参考


PHPマニュアル



Pick Up Q&A

Q
セッションがいいのか、それともデータベースがいいのか教えて下さい。
 このエントリーをはてなブックマークに追加 
A
>ボタンをクリックしたら選んだ商品情報を持っておきたいと思っています。 そのくらいのことならセッションもしくはCookie(期限短め:場合によってはブラウザ閉じるまで)でいいんじゃないですかね。 #わ...

>>続きを読む

一つの目安として、ECサイトの購入情報など絶対に消えてはいけないものはDBに、カートなどの一時的に使用する情報や、ユーザに任意のタイミングで消去されても構わないものはセッションにと使い分けるといいでしょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)