PHP での文字列のエスケープ

エスケープとは、異なる文脈で異なる意味を持つ文字を書くために使われる。

例えば、引用符で囲まれた文字列の中に別の引用符を挿入したい。どうすればいいのか?

2つのオプションがあります。

php
echo "リーバイス・ジーンズ"; // 引用符の種類の組み合わせ
echo 'レヴィのジーンズ'; // バックスラッシュのエスケープ

また、HTMLテンプレートに変数を書き込む場合、文字列の内容が異なる文脈で、何か特別な意味を持つ可能性があるため、エスケープは重要である。

したがって、例えば(変数に入れた)HTMLコードをリストアップする場合、リストアップの処理をしないとHTMLコードが実行されてしまいます。

例えば、こんな感じです。

php
$message = 'こんにちは<b>トミー!</b>。';
echo $message; // 間違っている
echo htmlspecialchars($message); // そうですね)

エスケープの問題は非常に複雑なので、David Grudel氏の記事Escaping - The Definitive Guide を読むことをお勧めします。

Newsletter

Nejlepsi tipy a triky o PHP do Vaseho e-mailu. Clanky a novinky nejen ze sveta PHP a programovani.