PHPを扱っていれば特殊な文字でエスケープが必要なシーンはどうしても出てくる。
このページではPHPの文字列エスケープについて見ていこう。
PHPでの文字列エスケープ
それでは簡単にPHPにおける文字列のエスケープについてみていこう。
エスケープの必要性
そもそもエスケープ処理とは、通常の記法では出力できないような文字をどうにかして出力させる処理のことをいう。
例えば、PHPにおいて文字列出力をする方法の1つに「’」で囲む記法があるが、その肝心の「’」を出力したい場合はどうすればよいだろうか。
まずは下記のコードを見ていただければと思う。
1 2 |
<?php echo '今日もA'は元気だ。'; |
この出力を「今日もA’は元気だ。」にしたい場合はどうすればよいだろうか?
単純にこんなコードを書いてしまわないだろうか
1 2 |
<?php echo '今日もA’は元気だ。'; |
残念ながらこのPHPコードはコンパイルエラーになる。
「’」はそもそも文字列を囲む必要があるので、始まりと終わりで2つあればよい。だが、3つになってしまっているので、PHPで解釈できない。
ここで「’」を文字列として出力させたい時に使うのがエスケープ処理だ。
バックスラッシュ(もしくは¥)によるエスケープ
書き方は次のようになる。
1 2 |
<?php echo '今日もA\'は元気だ。'; |
「¥」もしくは「\」記号によって直後の文字をエスケープすることで、そのまま文字列として出力することができるようになる。
エスケープが必要な文字は何も、「‘」だけではない。改行やタブなど、普段出力を意識しないような文字にも利用される。
いくつかエスケープ例をあげよう。
PHPエスケープの実例
改行
1 2 |
<?php echo "今日も明日も\n元気でいこう"; |
実行結果は下記のようになる。
1 2 3 |
今日も明日も 元気でいこう |
改行のエスケープシーケンスは「¥n」だ。
ちなみに、エスケープ文字によっては、ブラウザでは確認が難しいものがある。
この改行もそうなのだが、ブラウザを通して改行を表現するためには、HTMLタグである<br>を利用する必要がある。
だから、ここでは、純粋に素のPHPのサンプルとして上記の通り表すことにする。
エスケープ実例「タブ」
おなじみのタブも下記のようなコードで表すことができる。
1 2 |
<?php echo "今日も明日も\t元気でいこう"; |
タブのエスケープシーケンスは「¥t」だ。
エスケープシーケンスは他にもたくさんあるが、まずは上記を掴んでいただきつつ、必要なときに調べていただければと思う。
まとめ
このページではPHPの文字列エスケープについてお伝えをした。参考にしていただければ幸いだ。
コメント