亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目次
二重引用文字列:逃げることは問題です
単一引用文字:最小限の脫出
HeredocとNowdoc:拡張文字列の柔軟性
実用的なヒントと一般的な落とし穴
ホームページ バックエンド開発 PHPチュートリアル 文字列リテラルのマスタリング:PHPエスケープシーケンスのニュアンス

文字列リテラルのマスタリング:PHPエスケープシーケンスのニュアンス

Aug 01, 2025 am 07:38 AM
PHP Escape Characters

二重引用符はエスケープと変數(shù)を解釈し、単一の引用は物事を文字通りに保ちます。変數(shù)を備えた動的なコンテンツにダブル引用文字列を使用し、\ nや$などのシングルクォートシーケンスを使用し、意図しない解析を避けるために生のテキストを使用し、マルチライン補(bǔ)間文字列にヘレドックを適用し、マルチラインリテラルにはNowdocを適用し、常にファイルパスでバックスラッシュを適切に逃がします。

文字列リテラルのマスタリング:PHPエスケープシーケンスのニュアンス

PHPで文字列リテラルを使用する場合、特に動的コンテンツ、ファイルパス、または出力のフォーマットを扱う場合、エスケープシーケンスを理解することが不可欠です。 PHPの脫出の取り扱いは最初は簡単に思えるかもしれませんが、単一引用符と二重引用符で微妙な違いは、経験豊富な開発者でさえもつまずくことができます。

文字列リテラルのマスタリング:PHPエスケープシーケンスのニュアンス

二重引用文字列:逃げることは問題です

PHPでは、二重引用文字列がエスケープシーケンスを解釈します。これは、バックスラッシュ( \ )から始まる特定の文字の組み合わせが処理され、特別な値に置き換えられることを意味します。

二重引用文字の一般的なエスケープシーケンスには次のものがあります。

文字列リテラルのマスタリング:PHPエスケープシーケンスのニュアンス
  • \" - 文字通りの二重引用を挿入します
  • \$ - 可変補(bǔ)間を防ぎます(リテラル$が必要な場合に便利です)
  • \\ - 単一のバックスラッシュを挿入します
  • \n - Newline
  • \r - キャリッジリターン
  • \t - タブ
  • \v - 垂直タブ
  • \e - エスケープキャラクター(ASCII 27)
  • \0から\377 - オクタル文字コード
  • \x00から\xFF - 16進(jìn)數(shù)文字コード
  • \u{0000} to \u{10FFFF} - Unicode CodePoints(有効にする場合)

例えば:

 echo "hello \ tworld \ n"; //出力:Hello World
                       //(新しい行で)

この動作により、フォーマットのために二重引用文字列が強(qiáng)力になりますが、Windowsファイルのパスやregexパターンを書くときのように、解釈を望まない場合は注意する必要があります。

文字列リテラルのマスタリング:PHPエスケープシーケンスのニュアンス

単一引用文字:最小限の脫出

一口引っ張りの文字列はより文字通りです。ほとんどのエスケープシーケンスは無視されます。唯一の2つの例外は次のとおりです。

  • \\ - 文字通りのバックスラッシュになります
  • \' - 文字通りの単一の引用になります

他のすべてはプレーンテキストとして扱われます:

 echo 'hello \ nworld'; // outputs:hello \ nworld

Newlineは挿入されていません。これにより、意図しない解釈や解析からのパフォーマンスオーバーヘッドを避けたい場合に、単一引用符の文字列が理想的になります。

したがって、多くの$または\を含むHTMLまたはJavaScriptを埋め込んでいる場合、単一の引用符はバックスラッシュクラッターを避けるのに役立ちます。

HeredocとNowdoc:拡張文字列の柔軟性

マルチライン文字列の場合、PHPはheredocnowdoc提供します。

  • Heredocは、二重引用文字のように動作します(変數(shù)とエスケープが処理されます)。
  • Nowdocは、単一引用された文字列のように動作します(解釈なし)。

例:

 $ name = "Alice";

echo <<< eot
こんにちは$ name \ n
元?dú)荬扦工?eot;

//出力:こんにちはアリス\ n
// 元?dú)荬扦工?/pre>

待ってください - \n新しいラインになりませんでしたか?これは、デフォルトでは、Heredocがシーケンスを解析するため、それらが有効な場合のみです。この場合、 \n有効ですが、コンテキスト(數(shù)字が続くかどうかなど)に応じて、解釈される場合とされない場合があります。実際の新しいラインを確保するには、実際のラインブレークまたはPHP_EOLを使用します。

明示的な新しいラインを備えたより良い例:

 echo <<< eot
こんにちは$ name
元?dú)荬扦工?eot;

Nowdocはこれを完全に回避します:

 echo <<< &#39;eot&#39;
こんにちは$ name \ n
ここには変數(shù)や脫出はありません。
eot;

これにより、文字列が書かれたとおりに出力されます。

実用的なヒントと一般的な落とし穴

  • 変數(shù)やエスケープを必要としない場合は、単一の引用符を使用します。少し速くてきれいです。
  • 文字通りのドルの看板が必要な場合は、ダブル引用文字で$逃がしてください"The cost is \$10"
  • 8と9が有効なオクタル桁ではないため、 "\40"は空間( Octal 40)ですが、 "\8"または"\9" "8"または"9"になります。 PHPは無効なオクタルシーケンスを靜かに落とします。
  • ユニコードエスケープでは、特定のコンテキスト( preg関數(shù)など)でuフラグが必要ですが、文字列では、 \u{...}は、Unicodeサポートが有効になっている場合(最新のPHPでデフォルト)、ダブル引用またはHeredocでのみ動作します。
  • ファイルパスでのバックスラッシュ:Windowsで、ダブル引用文字でフォワードスラッシュ/または二重バックスラッシュ\\使用します。または、問題を回避するために、 DIRECTORY_SEPARATORまたはrealpath()を使用します。

基本的に、覚えておいてください:
二重引用符→エスケープと変數(shù)を解釈します。
単一の引用→ほとんどすべてが文字通りです。

複雑ではありませんが、間違っていると、HTML屬性や壊れたJSON出力に見積もりが欠落しているなど、見つけるのが難しいバグにつながります。

だからあなたの引用を賢く選んでください。

以上が文字列リテラルのマスタリング:PHPエスケープシーケンスのニュアンスの詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

バックスラッシュ地獄をナビゲートする: `preg_quote()`とregexの脫出に深く潛る バックスラッシュ地獄をナビゲートする: `preg_quote()`とregexの脫出に深く潛る Jul 26, 2025 am 09:51 AM

preg_quote()backslashesandthededelimiterを含むescapesregexスペシャルチャクター、totreatthemasliterals;

PHPのHeredocおよびNowdoc構(gòu)文でのキャラクターの動作を脫出します PHPのHeredocおよびNowdoc構(gòu)文でのキャラクターの動作を脫出します Jul 26, 2025 am 09:45 AM

Heredocは、\ n、\ t、\\、\ $などの可変補(bǔ)間と基本的なエスケープシーケンスを処理しますが、\ "または\ 'を処理しません。 nowdocでは、エスケートの見積もりは必要ありません。

シングルvs.二重引用符:キャラクター行動を逃れるための決定的なガイド シングルvs.二重引用符:キャラクター行動を逃れるための決定的なガイド Jul 28, 2025 am 04:44 AM

inbash、single quotestreatallcharactersliterlitivally whiledoublequoteSolowvarowvariaible expansionAndlimitedescaping; inpythonandjavascript、両方のQuotetypeshandleescapesthesame、ledicoicemainlycemainlectingivationability andconventyding bedingding beding beding beding、sousesinglequote

安全でクリーンなコードのための最新のPHPエスケープパターン 安全でクリーンなコードのための最新のPHPエスケープパターン Jul 26, 2025 am 09:51 AM

AlwayseScapeOutusingContext-SpecificMethods:htmlspecialchars()forhtmlcontentandattributes、rawurlencode()forurls、andjson_en code()withjson_hex_tag、json_hex_apos、json_hex_quot、andjson_unescaped_unicodeforjavascript.2.usetemplatingenginesliketwig、lara

バックスラッシュの蕓術(shù):PHPの正規(guī)表現(xiàn)で脫出キャラクターを分ける バックスラッシュの蕓術(shù):PHPの正規(guī)表現(xiàn)で脫出キャラクターを分ける Jul 27, 2025 am 03:18 AM

tomasterbackslashesinphpregex、lutledentthattwolayersofparsingocur:phpprocessesesscapesequencesfirst、theregexenginedoes;

比較分析: `addslashes()` vs. `htmlspecialchars()` vs. `mysqli_real_escape_string()` 比較分析: `addslashes()` vs. `htmlspecialchars()` vs. `mysqli_real_escape_string()` Jul 27, 2025 am 04:27 AM

SQL脫出は安全ではなく、SQL注入から保護(hù)されていないため、SQLエスケープの場合はaddSlashes()を避ける必要があります。 HTMLSPECIALCHARS()は、XSS攻撃を防ぐためにHTML出力に使用されます。 mysqli_real_escape_string()は、mysqlクエリでの文字列エスケープに使用できますが、事前処理ステートメントを使用できない場合は、最適ではないオプションにすぎません。 1。AddSlashes()は時代遅れで安全ではなく、最新のアプリケーションでのSQLエスケープには使用しないでください。 2。HTMLSPECIALCHARS()は、XSSを防ぐためにユーザー入力とHTMLに出力するときに使用するときに使用する必要があります。 3。mysqli_real_escape_string(

`addslashes()`:堅牢なSQL噴射防御のためのコンテキストエスケープ `addslashes()`:堅牢なSQL噴射防御のためのコンテキストエスケープ Jul 26, 2025 am 02:55 AM

SQLインジェクション保護(hù)は、Multi-Byteエンコードを処理せず、簡単にバイパスされる有限文字のみを逃れるため、AddSlashes()に依存することはできません。プリプロセシングステートメント(PDOまたはMySQLIのパラメーター化クエリなど)を使用して、データをSQLロジックから分離して、入力がコードに解析されないことを確認(rèn)する必要があります。プリプロセシングを使用できない場合は、データベース固有のエスケープ関數(shù)(Real_Escape_Stringや正しい文字セットの設(shè)定など)、識別子ホワイトリストまたは引用マークラッピング、整數(shù)入力キャスト、およびその他の方法をコンテキストに従って使用する必要があります。

脫出したエスケープ:PHPストリングとパスでリテラルバックスラッシュを処理する 脫出したエスケープ:PHPストリングとパスでリテラルバックスラッシュを処理する Jul 26, 2025 am 09:35 AM

backslashesgomissinginphpbecauseTheyareTreatedasescapecharactersIndouble-quotedstrings、sotofixthis:1.Usesinglequotesforl iteralpathslike'c:\ uses \ john \ documents '、2.ordoublethebackslashesindoublequotesas "c:\\ users \\\ john \\ documents"、3.prefer

See all articles