urlencodeは文字列をURL形式にエンコードしてくれます。
- _. を除くすべての非英数文字が % 記号 (%)に続く二桁の数字で置き換えられます。
値に”++”が含まれるときは、空白を表しています。
urlencodeは文字列をURL形式にエンコードしてくれます。
値に”++”が含まれるときは、空白を表しています。
preg_match等のPCRE(Perl互換正規表現)でUTF-8の日本語のパターンマッチがうまくいかないことがあります。
preg系はUTF-8日本語を正しく処理できますが、パターン修飾子「u」を正規表現の最後につけてUTF-8エンコードされた文字列であることを明示しなければなりません。
パターン修飾子「u」の例です。
preg_match("/日本語/u", $text)
ちなみに、最近のRHEL系ディストリビューションの標準RPMのPHPではmb_ereg系は正規表現エンジンにrubyと同じくoniguruma(鬼車)を使っているので、PCREの方がmb_eregより早いとは限らないようです。
最近のPHPでは、PCREのメリットは、mbstringに依存しないで済むことだと思います。
また、鬼車とPCREは非互換の部分があるので、その点をどう考えるかということもあると思います。
各種正規表現エンジンのベンチマーク(2010/7/21 MacOSX10.6.4 + gcc-4.2.1)
http://lh3lh3.users.sourceforge.net/reb.shtml
HTMLのタグで、
<a href="mailto:test@onlineconsultant.jp?subject=問い合わせ">
などと記述すると、タグにメールリンクが仕込まれ、ユーザーがリンクをクリックすると、ユーザー自身のメーラーが立ち上がり、件名に「問い合わせ」と入ります。
ただ、日本語の件名は文字化けしてしまう場合があるので、urlencodeする必要があります。
たとえば、PHPが使える環境でしたら、次のように出力しましょう。
<a href="mailto:test@onlineconsultant.jp?subject= <?php echo urlencode('問い合わせ'); ?>"> test@onlineconsultant.jp </a>
PHPファイルがUTF8だったりすると、SJISへ変換もする必要があります。
SJISへも変換したい場合は、次の通りです。
//上記リンクのPHPの部分だけ抜粋 echo urlencode(mb_convert_encoding('問い合わせ','SJIS','UTF-8'));
APIを利用時、JSONで送られてきたデータをPHPで解釈できるようにする方法がわからなかったので、メモしておきます!
//jsonデータの取得 $json_data = file_get_contents( jsonデータ ); //jsonデータからphpの配列に変換 $php_data = json_decode( $json_data, true );
compactという関数が、オフィシャルのPHPマニュアルだとちょっとわかりにくかったので、書いておきます。
http://jp.php.net/manual/ja/function.compact.php
例1 compact() の例 <?php $city = "San Francisco"; $state = "CA"; $event = "SIGGRAPH"; $location_vars = array("city", "state"); $result = compact("event", "nothing_here", $location_vars); print_r($result); ?>
上の例の出力は以下となります。
Array ( [event] => SIGGRAPH [city] => San Francisco [state] => CA )
$A=B、$C=Dのような変数の組み合わせがあれば、それを配列にしてくれる、ということです。