エスケープシーケンスの種類と使い方

改行などの特別な文字を文字列の中に記述するために使用するのがエスケープシーケンスです。エスケープシーケンスを使えば例えば改行は「\n」と表すことができます。ここでは PHP で使用できるエスケープシーケンスの種類と使い方について解説します。

(2021 年 06 月 30 日公開 / 2022 年 10 月 31 日更新)

エスケープシーケンスの種類と使い方

文字列をシングルクオーテーション( ' )で囲ったときに、エスケープシーケンスとして利用できるものは次の通りです。

\'    シングルクオーテーション
\\    バックスラッシュ(\)

文字としての ' を文字列の中で使用したい場合に \' と記述してください。

echo '名前は\'鈴木\'です";

文字列をダブルクオーテーション( " )で囲ったときに、エスケープシーケンスとして利用できるものは次の通りです。

\n    改行 0x0A
\r    キャリッジリターン 0x0D
\t    水平タブ 0x09
\v    垂直タブ 0x0B
\e    エスケープ 0x1B
\f    フォームフィード 0x0C
\\    バックスラッシュ(\)
\$    ドル記号($)
\"    ダブルクオーテーション

例えば文字列の中で改行を表したい場合には \n と記述します。また " で囲った文字列の中で特別な意味を持つ "$ などの文字を使用したい場合も \"\$ のように記述してください。

echo "こんにちは。\nお元気ですか";
echo "値段は\$100です";

注意して頂きたいのは \n\$ などは文字列を " で囲んだ場合にだけ意味を持つということです。文字列を ' で囲んで記述した場合に \n\$ を記述してもそのまま文字として扱われます。

echo 'こんにちは。\nお元気ですか';

上記の場合、途中で改行は行われずに「こんにちは。\nお元気ですか」とそのまま出力されます。

Webページで改行を出力しても改行されない場合

エスケープシーケンスを使用することで文字列の中に改行( \n )を出力することができますが、例えば HTML ページの中で <p> タグの中で改行文字を出力しても改行されるわけではありません。 HTML ページの中で改行するには <br> タグを使用する必要があるためです。

<p>
<?php
echo "こんにちは。\nお元気ですか";
?>
</p>

上記の場合「こんにちは。 お元気ですか」と出力されます。

<p> タグの中で改行したい場合は、 \n ではなく <br> タグを文字列の中に記述してください。

<p>
<?php
echo "こんにちは。<br>お元気ですか";
?>
</p>

または <p> タグではなく <pre> タグを使用されてください。 <pre> タグの中では \n で改行が行われます。

<pre>
<?php
echo "こんにちは。\nお元気ですか";
?>
</pre>
サンプルコード

では簡単なプログラムで試して見ます。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>PHPテスト</title>
</head>
<body>

<p>
<?php
echo "私の名前は\"本田\"です<br>";
echo '私の名前は\'近藤\'です';
?>
</p>

<pre>
<?php
echo "こんにちは!\nお元気ですか?";
?>
</pre>

</body>
</html>

sample.php というファイル名で Web サーバのドキュメントルートに保存しました。そのあとでブラウザからアクセスします。

エスケープシーケンスを使った特殊文字の記述

エスケープシーケンスを使って文字列の中で特別な文字を記述しました。

-- --

PHP で使用できるエスケープシーケンスの種類と使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。