文字のエスケープに関する問題に遭遇しましたが、それはまったく単純ではないと思います。これが JavaScript で行われている場合は、言うことはありませんが、コンテキストは (PHP で) echo コマンドを使用して、次のような JavaScript コードを記述しています。
echo "<script>document.getElementById('spanID').innerHTML=\"$x\"</script>";
$x は PHP 環境の変数で、一重引用符と二重引用符の両方を含めることができます。ここで行うことは次のとおりです。 1. $x を変更しないでください。$x に二重引用符が含まれている場合、上記のコードは機能しません。エコーされるテキストは次のようになります。
<script>document.getElementById('spanID').innerHTML="leftside"rightside"</script>;
$x = leftside" rightside だと思っていたのですが、うまくいかないことがわかります。
$x の二重引用符をエスケープします (すべての " を
"
)、エコーされたテキストは次のようになります。document.getElementById('spanID').innerHTML="leftside
"
右側";
の
"Span の innerHTML 属性に割り当てられた場合 (たとえば)、" に変換されないため、必要な代わりに、SPAN の innerHTML は左側にする必要があります"右側、左側になります
"右側。
元のエコーで " を ' に変更すると、次のようになります。
echo "<script>document.getElementById('spanID').innerHTML='$x'</script>";
ここの $x には一重引用符と二重引用符の両方を含めることができるため、同じです。
この場合、引用符をエスケープする他の方法は見つかりません。助けていただけませんか?
ありがとう!