1

以下のように文字列を出力しています

コード:

echo "&words=".$rs['pw']."&"; 

出力:

&words=ヘルプ|良い

最後&が印刷されていないことに注意してください。

しかし、&その後にスペース文字を追加すると、以下のように出力されます

コード:

echo "&words=".$rs['pw']."& "; 

出力:

&words=ヘルプ|いいね&

&印刷されるようになりました。

なぜそれが起こっているのか、この動作の理由は何ですか?

4

3 に答える 3

4

Web ブラウザーに出力する場合は&amp;、HTML で「&」を使用して & をエスケープする必要があります。これは、文字列をエスケープするためによく使用されます。URL では、<> などの特殊な文字も同様です。

于 2009-12-07T08:50:46.403 に答える
1

Web ページに出力している場合、ブラウザは&特別に解釈します。ブラウザの「ソースを表示」を選択すると、生の出力が表示されます。HTML コンテキストで表示する必要がある場合は、htmlspecialchars印刷する前に文字列を渡す必要があります。そう:

$rs['pw'] = "Help|Good";
echo htmlspecialchars("&words=".$rs['pw']."&");
于 2009-12-07T08:48:39.557 に答える
1

このコードは私のために働く

$rs['pw'] = "Help|Good";
echo "&words=".$rs['pw']."&";

出力

&words=ヘルプ|いいね&

これは私を質問に導きます: 文脈とは何ですか? このコード出力はどこにありますか? Web サーバーで実行し、ブラウザで表示していますか? これを引き起こしている他のコードはありませんか?

コンテキストが HTML での出力のようなものである場合、それが適切な場所にあることを確認する必要があります。HTML ではアンパサンドは特殊な文字であり、エスケープする必要があります。通常、それはに翻訳することを意味します&amp;

于 2009-12-07T08:37:49.823 に答える