PHPのエスケープシーケンスのサンプルです。
目次
文字 | エスケープシーケンス |
nl2br関数 | |
参考 | シングルコーテーションとダブルコーテーションの違い |
エスケープシーケンス
\文字 |
- エスケープシーケンスは、指定した文字に特殊な意味を持たせます。
- 特殊な意味を持たせたい文字の前に円記号(バックスラッシュ)を付けます。
- バックスラッシュ(円記号)の文字コードは、shift-jisでは0x5C、UnicodeではU+005Cです。
- 以下の場合は、エスケープシーケンスは不要です。
→文字列をダブルコーテーションで括った場合で、シングルコーテーションを入力する
→文字列をシングルコーテーションで括った場合で、ダブルコーテーションを入力する - 以下は、PHPマニュアルのエスケープシーケンスのリンクです。
http://php.net/manual/ja/regexp.reference.escape.php
エスケープシーケンスの一覧です。
文字 | 説明 |
---|---|
\' | シングルコーテーションを文字として表示する |
\" | ダブルコーテーション を文字として表示する |
\t | タブを表示する |
\\ | 円記号を表示する |
\$ | $記号を表示する |
\n | 改行 (LF)する |
\r | 復帰 (CR) |
\ooo | ASCII文字を表示する oooは3桁の8進数です。\101はAと表示されます。 |
\xhh | ASCII文字を表示する hhは2桁の16進数です。\x41はAと表示されます。 |
エスケープシーケンスのサンプルです。
<?php
// シングルコーテーションを表示
echo 'あいう\'えお<br />'; //あい'うえお
echo "あいう'えお<br />"; //あい'うえお
// ダブルコーテーションを表示
echo "あいう\"えお<br />"; //あい"うえお
echo 'あいう"えお<br />'; //あい"うえお
// タブを表示
echo "あいう\tえお<br />"; //あい うえお
// バックスラッシュ(円記号)を表示
echo "あいう\\えお<br />"; //あい\うえお
// $を表示
echo "あいう\$えお<br />"; //あい$うえお
// 改行を行う
echo "あいう\nえお<br />"; //「う」の後に改行が入る
// 円記号(バックスラッシュ)と8進数3桁を指定
echo "\101<br />"; //A
echo "\101\102<br />"; //AB
// 円記号(バックスラッシュ)とxと16進数2桁を指定
echo "\x41<br />"; //A
echo "\x41\x42<br />"; //AB
?>
5,9行目はエスケープシーケンスを使用しない例です。
5行目は、ダブルコーテーションで括った中にシングルコーテーションがあります。
9行目は、シングルコーテーションで括った中にダブルコーテーションがあります。
21行目の改行は、ブラウザの画面で見ると改行されていません。 画面を右クリックしてソースを見ると改行されています。
nl2br関数
改行のエスケープシーケンス(\n)は画面で改行されませんが
nl2br関数を使用するとブラウザの表示とソース上で改行されます。
<?php
echo "あい";
echo nl2br("\n");
echo "うえお";
?>
以下は、PHPマニュアルのnl2br関数のリンクです。
http://php.net/manual/ja/function.nl2br.php
シングルコーテーションとダブルコーテーションの違い
シングルコーテーションとダブルコーテーションで囲んだときの挙動の違いのサンプルです。
<?php
$test1 = "abc";
echo '$test1<br />'; // $test1
echo "$test1<br />"; // abc
?>
2行目は、変数に値をセットしています。
4行目は、文字列をシングルコーテーションで囲んでいます。変数名がそのまま表示されます。
6行目は、文字列をダブルコーテーションで囲んでいます。変数の値が表示されます。
関連の記事
PHP if文のサンプル
PHP while文とdo…while文のサンプル
PHP foreach文のサンプル(break/continue)
PHP 関数のサンプル