web-dev-qa-db-ja.com

PHPスクリプトエコー内の二重引用符

次のようなphpコードの行があります。

echo "<script>$('#edit_errors').html('<h3><em>Please Correct Errors Before Proceeding</em></h3>')</script>";

テキストにフォントの色を正しく追加する方法を知りたいです。これを行う場合:

echo "<script>$('#edit_errors').html('<h3><em><font color="red">Please Correct Errors Before Proceeding</font></em></h3>')</script>";

「赤」という単語は黒のテキストであり、コンパイラはエラーをスローします。

赤の周りに一重引用符を使用すると、テキストはまったく表示されません。

どんな助けも素晴らしいでしょう。ありがとう

11
RXC

"をエスケープする必要があるため、文字列の終わりとして解釈されません。 \を使用してエスケープします。

echo "<script>$('#edit_errors').html('<h3><em><font color=\"red\">Please Correct Errors Before Proceeding</font></em></h3>')</script>";

詳細: 文字列 および エスケープシーケンス

48
Zbigniew

[〜#〜] heredoc [〜#〜] を使用します。これにより、引用タイプを交換したりエスケープしたりする必要がなくなります。

echo <<<EOL
<script>$('#edit_errors').html('<h3><em><font color="red">Please Correct Errors Before Proceeding</font></em></h3>')</script>
EOL;
11
Marc B

引用符をエスケープするだけです:

echo "<script>$('#edit_errors').html('<h3><em><font color=\"red\">Please Correct Errors Before Proceeding</font></em></h3>')</script>";
4
John Conde

\の前にバックスラッシュ"を追加して、文字列内の引用符をエスケープする必要があります。

お気に入り:

"<font color=\"red\">"
3
Ryan

引用符内のechoステートメントの変数にアクセスする必要がある場合は、変数を中括弧で囲みます

echo "i need to open my lock with its: {$array['key']}";
2
mark

英数字の属性の引用符は無視できます。

echo "<font color=red> XHTML is not a thing anymore. </font>";
echo "<div class=editorial-note> There, I said it. </div>";

HTMLで完全に有効であり、まだ回避されていますが、HTML5以来絶対に流行しています。

[〜#〜]警告[〜#〜]

  • ほとんどの場合、英数字とダッシュの組み合わせでのみ有効です。
  • ユーザー入力を属性に追加した状態でこれを実行しないでください(引用符と htmlspecialchars またはホワイトリストが必要なもの)。
  • 参照: HTML5で属性値を引用符で囲まない場合
  • ほかのニュースでは: <font>具体的にはやや時代遅れです。
0
mario