php7文字列エスケープ

WBOY
WBOYオリジナル
2023-05-24 16:44:38714ブラウズ

PHP プログラミングでは、文字列は一般的なデータ型の 1 つです。多くの場合、コードが正常に実行され、潜在的なセキュリティ リスクを回避できるように、文字列をエスケープする必要があります。 PHP のバージョンは常に更新されるため、文字列エスケープにもいくつかの変更が加えられています。この記事では、PHP7 の文字列エスケープ操作を紹介します。

1. エスケープ文字

PHP では、エスケープ文字は引用符、バックスラッシュ、改行などの特殊文字を表すために使用されます。一般的なエスケープ文字は次のとおりです。

  • ': 一重引用符を表します
  • ": 二重引用符を表します
  • \: バックスラッシュを表します
  • :改行文字を示します
  • : 復帰文字を示します
  • : タブ文字を示します
  • : 文字列内の垂直タブ文字

を示します 構文

$string = 'This is a 'string'';
$string = "This is a "string"";
$string = "This is a string with a \ backslash";
$string = "This is a string
with a newline";
$string = "This is a stringwith a carriage return";
$string = "This is a string    with a tab";
$string = "This is a stringwith a vertical tab";

一重引用符文字列を使用する場合、一重引用符エスケープ文字のみを使用でき、二重引用符エスケープ文字は使用できないことに注意してください。例:

$string = 'This is a "string"'; // 错误
$string = 'This is a 'string''; // 正确

二重引用符で囲まれた文字列では、二重引用符エスケープ文字または一重引用符エスケープ文字を使用できます。

PHP7 より前では、予期しない文字列エスケープの問題を避けるために、手動で文字列を二重引用符でエスケープする必要がありました。 :

$str = '
'; // 双重转义后的字符串

ただし、PHP7 では文字列のエスケープにいくつかの変更が加えられ、この二重エスケープ方法は不要になりました。 , 最新のエスケープ構文を使用して文字列エスケープを処理できます。最新のエスケープ構文を使用した後は、エスケープ文字を手動で二重エスケープする必要はありません。コードはより明確で簡潔になります。最新のエスケープ構文には、二重引用符で囲まれた文字列とヒアドキュメントの 2 つの形式が含まれています/nowdoc strings.

##二重引用符で囲まれた文字列の最新のエスケープ構文

二重引用符で囲まれた文字列では、中括弧を使用して変数名を囲むことができます。文字列に変数の値を含めます。これで、変数名の前にエスケープ文字 $ を使用して、それが変数名であることを示すことができます。
  1. たとえば、次のコードは最新の double-引用文字列エスケープ構文:
  2. $name = 'John';
    $string = "Hello, {$name}!";
    echo $string; // 输出:'Hello, John!'
上記のコードでは、変数の埋め込みに中括弧 {} を使用しているため、エスケープ文字 $ を前に使用する必要があります。新しいエスケープ構文を使用しなかった場合、コードは手動で二重エスケープする必要があります:

$name = 'John';
$string = "Hello, {$name}!";
$string = "Hello, ".$name."!";
echo $string; // 输出:'Hello, John!'

heredoc/nowdoc 文字列の最新のエスケープ構文

heredoc および nowdoc 文字列は PHP5.3 で導入されました。これら 2 つの文字列は、エスケープせずに文字列内に複数行のテキストを含めることができるという点です。
  1. ヒアドキュメント文字列は <<< 演算子で始まり、同じ識別子で終わります:
  2. $str = <<<EOD
    This is
    a
    multi-line
    string.
    EOD;
Nowdoc 文字列は一重引用符で始まり、同じ一重引用符で終わります:

$str = <<<'EOD'
This is
a
multi-line
string.
EOD;

PHP7 では、最新のエスケープ構文を使用して、heredoc/nowdoc 文字列内のエスケープ文字を処理できます。新しい構文は次のとおりです:

$str = <<<EOD
This is
a "multi-line" string.
EOD;
echo $str; // 输出:'This is
a "multi-line" string.'
$str = <<<'EOD'
This is
a 'multi-line' string.
EOD;
echo $str; // 输出:'This is
a 'multi-line' string.'

最新の構文では、エスケープ文字を含める必要がある場合は、二重エスケープを行わずにエスケープ文字を直接使用できます。文字列エスケープ操作にいくつかの変更が加えられています。最新のエスケープ構文は、より明確で簡潔なコードを記述し、手動で二重エスケープするという面倒なプロセスを回避するのに役立ちます。 PHP 開発者の場合は、コードの読みやすさと保守性を向上させるために、最新のエスケープ構文を使用することをお勧めします。

以上がphp7文字列エスケープの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。