PHPのエスケープ処理について現役エンジニアが解説【初心者向け】

初心者向けにPHPのエスケープ処理について現役エンジニアが解説しています。エスケープ処理とは、出力することの出来ない文字を出力させたり、文字列の途中で改行するなどの特殊な処理を行うための処理です。文字列やダブルクォーテーションをバックスラッシュでエスケープします。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事が4,000以上あります。現役エンジニアの方はこちらをご覧ください。

PHPのエスケープ処理について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

そもそもPHPについてよく分からないという方は、PHPとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプPHP/Laravel講座の内容をもとに紹介しています。

 

田島悠介

今回は、PHPに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

PHPのエスケープ処理について詳しく説明していくね!

大石ゆかり

お願いします!

この記事は、エスケープ処理の概要や、PHPプログラムでエスケープ処理を行う方法について解説しています。PHPを使用した開発にまだ慣れていないという方でも理解できる内容となっています。

目次

 

エスケープ処理とは

エスケープ処理とは、普通に記述するだけでは出力することの出来ない文字を出力させたり、文字列の途中で「改行する」などの特殊な処理を行うために特殊な文字を組みあわせて、その処理を実現することをいいます。

このエスケープ処理はPHPに限らず、他のプログラム言語でも共通に存在する処理です。

[PR] PHPのプログラミングで挫折しない学習方法を動画で公開中

文字列をエスケープする方法

例えば、下記のようなPHPプログラムを実行するとエラーが発生します。

サンプルコード:

<?php
echo "私は"りんご"が好きです"
?>

実行結果:

PHP Parse error:  syntax error, unexpected 'りんご' (T_STRING), expecting ';' or ',' in /workspace/Main.php on line 2/pre>

エラーの原因は、文字列の開始と終了を表す引用符「”」の中に、「りんご」を括るために「”」使用しているためです。

PHPでは、「”」は文字列の開始と終了を表す引用符として使われるように登録されているために、「”」の中に、「”」を記述すると構文エラーとなります。「”」を単に文字として扱いたい場合は、エスケープ処理を行う必要があります。

それでは、エスケープ処理を行って、「”」を単に「りんご」という文字列を括る文字として出力します。

サンプルコード:

<?php
echo "私は\"りんご\"が好きです"
?>

実行結果:

私は"りんご"が好きです

上記のプログラムでは、「”」の前に「\(バックスラッシュ)」を使用して「”」を単に文字として扱うようにしています。

このように、「”」のように特別な意味を持つ文字の前に「\」のようなエスケープ文字を使用して「文字列の開始と終了」という特別な効果を打ち消す処理がエスケープ処理です。

上記プログラムでは、エスケープ文字に「\」を使用していますが、「¥(円記号)」も「\」と同じ効果を持ちます。「\」と「¥」の関係ですが、言語環境やフォントの種類によって表示が異なるだけで、同じ意味合いを持ちます。

エスケープシーケンス

上記のように「”」を文字として出力するためにエスケープ文字「\」を使用した場合の「\”」のような組み合わせをエスケープシーケンスといいます。

エスケープシーケンスを使用することで、文字列の途中で「改行」したり「タブ」を挿入したりといった特殊な処理を行うことも可能です。

以下は、主なエスケープシーケンスの一覽です。

エスケープシーケンス一覽:

\n 改行
\r キャリッジリターン
\t 水平タブ
\v 垂直タブ
\f 改ページ
\’ シングルコーテーション(文字として扱う)
\” ダブルコーテーション(文字として扱う)
円記号(文字として扱う)
\$  ドル記号

 

実際に書いてみよう

それでは、実際に上記のエスケープシーケンスを使用する例を見ていきましょう。

 

サンプルコード:

<?php
// シングルコーテーション
echo '私は\'みかん\'が好きです';
echo "\n\n";

// 改行
echo "りんご\nみかん\nれもん\n";
echo "\n";

// タブ
echo "りんご\tみかん\tれもん\n";
echo "\n";

// ドル記号
echo "りんごの価格:\$1";
?>

 

実行結果:

私は'みかん'が好きです

りんご
みかん
れもん

りんご	みかん	れもん

りんごの価格:$1

 

エスケープシーケンスを使用することで、特別な効果を持つ「’」や「$」を文字として出力したり、「\n」や「\t」のような特殊な処理を行えることが確認できると思います。

まとめ

以上、エスケープ処理の概要や使用方法について解説しました。

エスケープ処理は、実務でもよく使いますし、PHP以外のプログラム言語でも使用する処理です。エスケープ処理とは何か、その使用方法について確実にマスターして実際の開発に役立てましょう。

筆者プロフィール

平野大輝(ひらのだいき)

スキル:PHP・Java・JavaScriptを用いて様々なアプリを開発するWebエンジニア。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも最短4週間でPHPやフレームワークのLaravelを使ってWebアプリケーション開発を習得できるオンラインブートキャンプPHP/Laravel講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。