ホームページ > バックエンド開発 > PHPチュートリアル > 解析エラーを避けるために、PHP 文字列内の引用符をエスケープするにはどうすればよいですか?

解析エラーを避けるために、PHP 文字列内の引用符をエスケープするにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-23 06:03:20
オリジナル
779 人が閲覧しました

How Can I Escape Quotation Marks in PHP Strings to Avoid Parse Errors?

PHP での引用符のエスケープ

引用符に関連する解析エラーが発生するとイライラすることがあります。この問題に対処するために、文字列を一貫して扱うためのさまざまなアプローチを検討してみましょう。

たとえば、次の行で問題が発生すると述べました:

$text1 = 'From time to "time" this submerged or latent theater in 'Hamlet'
           becomes almost overt. It is close to the surface in Hamlet's pretense of madness,
           the "antic disposition" he puts on to protect himself and prevent his antagonists
           from plucking out the heart of his mystery. It is even closer to the surface when
           Hamlet enters his mother's room and holds up, side by side, the pictures of the
           two kings, Old Hamlet and Claudius, and proceeds to describe for her the true
           nature of the choice she has made, presenting truth by means of a show.
           Similarly, when he leaps into the open grave at Ophelia's funeral, ranting in
           high heroic terms, he is acting out for Laertes, and perhaps for himself as well,
           the folly of excessive, melodramatic expressions of grief.";
ログイン後にコピー

このエラーは、文字列内の引用符が使用されているために発生します。文字列がインタプリタを混乱させます。これを解決するには、バックスラッシュ () を使用して引用符をエスケープします。これにより、PHP は引用符を解釈せずに、囲まれたテキストを単一の文字列として認識します。

$text1 = 'From time to \"time\" this submerged or latent theater in 'Hamlet'
...
ログイン後にコピー

PHP は一重引用符と二重引用符を区別しないため、文字列に一重引用符を使用することもできます。文字列リテラルの場合:

$text1 = 'From time to "time"';
ログイン後にコピー

考慮すべきもう 1 つのオプションは、ヒアドキュメントを使用することです。これは、 「<<<」および「用語」構文。これにより、複数行のテキストを 1 つの文字列に含めることができるため、大量のテキストの場合に便利です。ヒアドキュメントは、解析の問題を引き起こすことなく文字列内に一重引用符と二重引用符の両方を含める必要がある場合に特に役立ちます。

$heredoc = <<<term
This is a long line of text that include variables such as $someVar
and additionally some other variable $someOtherVar. It also supports having
'single quotes' and "double quotes" without terminating the string itself.
heredocs have additional functionality that most likely falls outside
the scope of what you aim to accomplish.
term;
ログイン後にコピー

これらの手法を実装すると、引用符によって引き起こされる解析エラーを回避し、文字列が確実にPHP スクリプトで正しく解釈されます。

以上が解析エラーを避けるために、PHP 文字列内の引用符をエスケープするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート