PHPのエスケープシーケンスのサンプルです。
| 確認環境 ・PHP 7.1.8 |
目次
エスケープシーケンス
- 特殊な意味を持つ文字を表すために使用します。
- 文字の先頭にバックスラッシュ(¥円記号)を付けます。
- 以下は、PHPマニュアルのエスケープシーケンスのリンクです。
http://php.net/manual/ja/regexp.reference.escape.php
| 文字 | 説明 |
|---|---|
| ¥' | シングルコーテーション |
| ¥" | ダブルコーテーション |
| ¥t | タブ |
| ¥¥ | 円記号 |
| ¥$ | $記号 |
| ¥n | 改行 (LF) |
| ¥r | 復帰 (CR) |
| ¥ooo | oooにはASCII文字の8進数3桁のコードが入ります →ASCII文字が表示されます |
| ¥xhh | hhにはASCII文字の16進数2桁のコードが入ります →ASCII文字が表示されます |
コード
サンプルのコードです。
5,9行目はエスケープシーケンスを使わない例です。
21行目の改行は、ブラウザの画面で見ると改行されていません。 画面を右クリックしてソースを見ると改行されています。
<?php
// シングルコーテーションを表示
echo 'あいう\'えお<br />'; //あい'うえお
echo "あいう'えお<br />"; //あい'うえお
// ダブルコーテーションを表示
echo "あいう\"えお<br />"; //あい"うえお
echo 'あいう"えお<br />'; //あい"うえお
// タブを表示
echo "あいう\tえお<br />"; //あい うえお
// バックスラッシュ(円記号)を表示
echo "あいう\\えお<br />"; //あい\うえお
// $を表示
echo "あいう\$えお<br />"; //あい$うえお
// 改行を行う
echo "あいう\nえお<br />"; //「う」の後に改行が入る
// ASCII文字の8進数3桁のコードでASCII文字を表示
echo "\101<br />"; //A
echo "\101\102<br />"; //AB
// ASCII文字の16進数2桁のコードでASCII文字を表示
echo "\x41<br />"; //A
echo "\x41\x42<br />"; //AB
?>
シングルコーテーションとダブルコーテーションで囲んだときの挙動の違い
シングルコーテーションとダブルコーテーションで囲んだときの挙動の違いのサンプルです。
2行目は、変数に値をセットしています。
4行目は、文字列をシングルコーテーションで囲んでいます。変数名がそのまま表示されています。
6行目は、文字列をダブルコーテーションで囲んでいます。変数の値が表示されています。
<?php
$test1 = "a";
echo 'あ $test1<br />'; // あ $test1
echo "あ $test1<br />"; // あ a
?>
nl2br関数
上記コード16行目の改行のエスケープシーケンスは画面で改行されませんが
nl2br関数を使用するとブラウザの表示とソース上で改行されます。
<?php
echo "あい";
echo nl2br("\n");
echo "うえお";
?>
以下は、PHPマニュアルのnl2br関数のリンクです。
http://php.net/manual/ja/function.nl2br.php
関連の記事
PHP if文のサンプル
PHP while文とdo…while文のサンプルのサンプル
PHP 配列の値をループで取得するサンプル(foreach文)
PHP 関数のサンプル