Manga and Programer site

初心者向け!プログラミング講座 【PHP編】『改行、空白、エスケープシーケンス』

2019/02/06
 

漫画坊主です。

今回はPHPにおける 改行空白エスケープシーケンス について勉強したいと思います。

 

プログラミング初心者の方は本編の 漫画で入門!初心者向けプログラミング講座 を先にご覧下さい!
漫画で入門!初心者向けプログラミング講座【PHP編】#1『PHPとは』

 

※本編に移る前に注意

 

私の使用しているパソコンの OS が Windows10 ですので、
スクリーンショットがWindows10 となっております。予めご了承くださいませ。

 

本編でテキストエディタのスクリーンショットを使用しておりますがこちらは
【Sublime Text 3】を使用しております。
テキストエディタはご自身が使いやすいもので問題ありません。
もしテキストエディタを インストールしていない方 がいましたら下記からインストールできます。

【Sublime Text 3】のインストールはこちら

 

それでは本編開始です!

 

 

◆エスケープシーケンス

 

まずは【エスケープシーケンス】から勉強していきましょう。

 

【エスケープシーケンス】とはキーボードから文字列として入力できない、
改行やタブなどの 特殊な文字 のことを言います。

 

この説明だけですとピンと来ない方もいるかと思いますので
【エスケープシーケンス】を表にまとめましたのでまずはこちらをご覧ください。

表を見てお気づきになった方もいるかと思いますが、
【エスケープシーケンス】の記述方法は
【 \ 】または【 ¥ 】の後に 文字 や 記号 を記述しています。

 

この【 \ 】または【 ¥ 】のことを エスケープ記号 と呼び、
【 \ + 文字】または【 ¥ + 文字】のことを 特殊文字 と呼びます。
※ちなみに【 \ 】【 ¥ 】は文字コードの関係で変化しますので、
記述する際はどちらでも構いません。

 

ここで【エスケープシーケンス】を書くときの注意点!

 

【エスケープシーケンス】は【” “】ダブルクォーテーションで囲むこと です。
【” “】【エスケープシーケンス】【変数】を展開して表示してくれます。
※一部例外がありますので注意!

ですが、【’ ‘】シングルクォーテーション で囲むと文字列として認識される からです。

 

説明でピンと来ない方のために例文を用意しました!
下記のソースをご覧下さい。

<?php
echo '漫画坊主です\n'.'22歳です\n'.'趣味は漫画を描くことです';
?>

 

このソースは【 ‘  ‘ 】で【エスケープシーケンス】を囲っています。
このソースをブラウザ上で確認をするとこうなります。

 

 

エスケープシーケンス】が そのまま文字として反映されている のが分かります。

【 ‘  ‘ 】と【 ”  ” 】の使い分け方としては、

 

【 ‘  ‘ 】シングルクォーテーションは文字として出力するときに使用。
【 ”  ” 】ダブルクォーテーションは【変数】や【エスケープシーケンス】を展開するときに使用。

 

では先程の表に記載していた【エスケープシーケンス】を実際にブラウザで見てみましょう。

<?php
echo "改行\nテスト";		//ラインフィード(改行)
echo "改行\rテスト";		//キャリッジリターン(改行)
echo "改行\r\nテスト";		//改行
echo "タブ\tテスト";		//水平タブ
echo "タブ\vテスト";		//垂直タブ
echo "\\";				//¥文字表示
echo "\$";				//$文字表示
echo "\(";				//左括弧
echo "\)";				//右括弧
echo "\[";				//左括弧
echo "\]";				//右括弧
echo "\{";				//左波括弧
echo "\}";				//右波括弧
echo '\' と \"';			//シングルクォーテーション表示(' ')で囲った場合のみ
echo "\' と \"";			//ダブルクォーテーション表示(" ")で囲った場合のみ
?>

 

ブラウザではこう変化します。
※見やすいようにソースに改行を加えています。

 

【エスケープシーケンス】が変化しているのが分かります。
ですが 改行 空白 に変化して改行が出来ていません。

 

ではソース上で確認してみましょう。
右クリックを押して【ページのソースを表示】をクリックします。

 

 

ソース上ではブラウザで空白だった箇所が改行に変化していますね。
ただ、【 \r 】は改行されていません。これには理由があります。
お使いの OS によって 改行コードが違う からです。

 

さて、【エスケープシーケンス】の【 \n 】【 \r 】【 \r\n 】ブラウザ上では改行できません。
ではどのようにしてブラウザ上で改行するのか?
続いては改行について詳しく勉強したいと思います。




◆改行コード

 

まずは改行について表にしましたのでそちらをご覧下さい。

【エスケープシーケンス】の改行コードはOSによって【 \n 】【 \r 】【 \r\n 】が異なります。

<?php
echo "改行テスト1\n\n";
echo "改行テスト2\r\r";
echo "改行テスト3\r\n\r\n";
?>

 

実際にブラウザ上で確認してみましょう。
左がブラウザ、右がソース上での確認です。

 

先程もお話しましたが、ブラウザ上では改行されません
私の OS ではソース上で【 \n 】【 \r\n 】が改行されて【 \r 】が改行されません。
エスケープシーケンス】の改行は、お使いのOSによって変わりますので注意が必要です。

 

では、ブラウザ上での改行はどうするのでしょうか?
実際にソースを見てみましょう。

<?php
echo "改行<br>テスト4<br><br>";
?>

 

ブラウザ上では HTMLの【<br>】タグを使用します。
※【<br>】タグは【</br>】でも【<br/>】でも使えます。

 

では実際にブラウザ上で確認してみましょう。
左がブラウザ、右がソース上での確認です。

 

ブラウザで改行が出来ている のが分かります。
逆にソース上には【<br>】タグが表示されています。

 

結論、ブラウザ上で改行をするなら【<br>】タグを使用すれば問題ない かと思います。

 

ちょっと余談ですが、PHPの組込関数を使用して
【エスケープシーケンス】の改行コードを【<br>】タグに変換する関数があります

 

ではサンプルソースをご覧下さい。

<?php
echo nl2br("改行テスト5\n\n");
echo nl2br("改行テスト6\r\r");
echo nl2br("改行テスト7\r\n\r\n");
echo nl2br("改行テスト8<br><br>");
?>

 

この【 nl2br 】という関数を使用します。

 

echo  nl2br(  “ここに改行コードを含む文字列   );

 

改行コードを含む文字列を【 nl2br 】にセットすれば準備完了です。
では実際にブラウザ上で確認してみましょう。
左がブラウザ、右がソース上での確認です。

 

ブラウザ上では改行できています。
ソース上では【<br>】タグに変換されているのが分かります。

 


◆空白の書き方

 

最後に 空白 についてもまとめてみました。

まずは下記の表はご覧下さい。

 

上記が ブラウザ上で使用する空白 です。
説明だけでは 空白の幅 はイメージできないと思いますので、
実際に確認してみましょう。

 

まずはこちらのソースをご覧ください。

<?php
echo "||";	//スペースなし
echo "| |";	//半角スペース
echo "| |";	//全角スペース
echo "|&nbsp;|";	//【&nbsp;】スペース
echo "|&ensp;|";	//【&ensp;】スペース
echo "|&emsp;|";	//【&emsp;】スペース
echo "|&thinsp;|";	//【&thinsp;】スペース
?>

特殊文字は【 ”  ” 】ダブルクォーテーションで囲う必要がある ので注意しましょう。

 

ではブラウザ上で確認しましょう。
左がブラウザ、右がソース上での確認です。

 

ブラウザ上は微妙に 幅の間隔が違う のが確認できます。
ソース上では 特殊文字 が変化していないのが分かるかと思います。

 

続いて 空白の幅 について考えていきたいと思います。

普段、意図する幅の空白を作る時に
半角スペース と 全角スペース は普段から使うかと思います。

 

しかし、ブラウザ上では 半角スペース や 全角スペース だけでは
意図する空白を作ることが出来ません。
そこで、特殊文字を使用して空白を作る ことができます。

 

サンプルソースを用意しましたのでこちらをご覧下さい。

<?php
echo"空白           幅の確認"."<br><br>";
echo"空白&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;幅の確認"."<br><br>";
?>

 

ブラウザ上で確認をするとこうなります。

 

通常の空白ですと意図した幅の空白 に出来ません。
しかし、下記のソースのように記述すると
半角スペース全角スペースをそのままブラウザに反映させることが出来ます。

<?php
//preタグなし
echo"空白           幅の確認"."<br><br>";
echo"空白&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;幅の確認"."<br><br>";

//preタグあり
echo "<pre>";
echo"空白           幅の確認"."<br><br>";
echo"空白&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;幅の確認"."<br><br>";
echo "</pre>";
?>

 
HTMLの<pre>タグというもので囲います。
では、ブラウザ上で確認してみましょう。

今度は反映されました。

 

◆まとめ

・【エスケープシーケンス】は【” “】ダブルクォーテーションで囲む
・【’ ‘】シングルクォーテーション で囲むと文字列として認識される
・【” “】ダブルクォーテーションは【変数】や【エスケープシーケンス】を展開する
・【エスケープシーケンス】の改行コードはOSによって異なる
・ブラウザ上で改行をするなら【<br>】タグを使用する
・【エスケープシーケンス】の改行コードを【 nl2br 】の関数で【<br>】タグを変換できる
・ブラウザで意図する空白を作る場合は特殊文字を使用する
・HTMLの<pre>タグで半角スペース、全角スペースを反映することができる

 

以上で 初心者向け!プログラミング講座【PHP編】
『 改行、空白、エスケープシーケンス』を終了したいと思います。

 

他にもこんなプログラミング講座も作成しています。
初心者向け!プログラミング講座 【PHP編】『 文字分割【explode】と 文字結合【implode】』

初心者向け!プログラミング講座 【PHP編】『date関数、UNIXタイムスタンプ』

 

最後まで読んで頂きありがとうございました!

 

◆良かったら息抜きに私の描いた漫画も読んでみて下さい!
漫画坊主の漫画はこちらから

◆プログラミングの勉強を続ける場合はこちらから!
プログラミングの勉強はこちらから

 

フォローお願いします!!
twitter
4コマgram


この記事を書いている人 - WRITER -
漫画坊主
漫画 を描くのが好きな プログラマ です。 プログラミング初心者の方に漫画で勉強できる ブログ を作成しています。 勉強に疲れた時にはオリジナルの 4コマ漫画 や ストーリー漫画 も 更新してますので、楽しんでいただけると幸いです! twitter もやってますので、気軽にフォローしてください!
詳しいプロフィールはこちら

- Comments -

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Copyright© 漫画坊主のブログ , 2018 All Rights Reserved.