PHPのURLエンコード関数、urlencode()とrawurlencode()の2つを調査してみました。
以下に調査結果を記します。
尚、本記事のテストPHPスクリプトはコマンドライン(CLI:Command Line Interface)で試しました。
htmlinsert(): The given local file does not exist or is not readable.
PHP Manualのリンクです。
$ php --version PHP 5.3.3 (cli) (built: Jul 3 2012 16:53:21) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
$ lsb_release -d Description: CentOS release 6.3 (Final)
上記の関連資料を見ると、半角スペースやチルダの取り扱いが異なるようです。
実際に半角スペースのURLエンコードを実行してみます。
<?php $str = " "; printf("%s\n", urlencode($str)); printf("%s\n", rawurlencode($str)); ?>
実行結果
$ php sp_encode.php + %20
<?php $str = "~"; printf("%s\n", urlencode($str)); printf("%s\n", rawurlencode($str)); ?>
実行結果
[sakura@centos6 ~]$ php tilde_encode.php %7E ~
当方で確認していませんが、PHPのバージョンにより動作が異なるようです。
以上、PHPのURLエンコード関数・urlencode, rawurlencodeの調査でした。