PHP エスケープシーケンスのサンプル

PHPのエスケープシーケンスのサンプルです。

確認環境
・PHP 7.1.8

目次

エスケープシーケンス

  • エスケープシーケンスは、指定した文字に特殊な意味を持たせます。
  • 特殊な意味を持たせたい文字の前に円記号(バックスラッシュ)を付けます。
  • バックスラッシュ(円記号)の文字コードは、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&lt;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文)
PHP 関数のサンプル

△上に戻る