1

html をmailtoリンク ( <a href='mailto:...) に入れ、 htmlescapechars() を使用しようとしていますが、これは必要なものではないようです。

<a href='mailto:?subject=<?echo $subject_e=htmlspecialchars($subject, ENT_QUOTES)?>&body=<?=$subject_e?>%20via%20https&#58;&#47;&#47;mySite.com&#47;<?=htmlspecialchars($subjectLink, ENT_QUOTES)?>%20'>some text</a>

PHP のドキュメントの htmlspecialchars() 部分の例 #1 がどのような条件下で機能するかを説明できる人はいますか?

$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;

自分のサーバーまたはhttp://writecodeonline.com/php/でこの関数を実行しても、特殊文字が変換されないようです。

したがって、PHP のバージョンの問題ではないようです。encodingパラメータを含めても効果はありませんでした。え?

4

5 に答える 5

2

自分のサーバーでこの関数を実行しても [...] 特殊文字が変換されないようです。

スクリプトの出力を HTML として表示するため、そう考えているに違いありません。HTML のように表示しますか? そう、<キャラクター…</p>

于 2013-03-15T16:19:56.327 に答える
1

あなたはそれを間違って見ています!HTML タグが表示されているのは、魔法の php 関数が機能しているためです。それ以外の場合は、実際の HTML としてレンダリングされます。これは、HTML ページに印刷する可能性が高いために発生しています。

于 2013-03-15T16:26:40.150 に答える
1

SO の他の場所を調べた後、htmlspecialchars()必要なだけではなく気付いたのですrawurlencode()

于 2013-03-15T16:35:56.080 に答える
0

それは実際に働いています。ソースを表示すると、正常に動作していることがわかります。ただし、HTMLは特殊文字をレンダリングしています

于 2013-03-15T16:20:51.507 に答える
0

ページのコードを見ると、生成されたものがまさに期待通りのものであることがわかります。ルー:

     <div class="page-body">
        <div id="code-output" class="code-output">&lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;</div>
     </div>

問題は、ページをレンダリングすると、html エンティティが再びテキストに変換されることです。<pre>それが望ましくない場合は、出力をタグ内に配置する必要があります。

于 2013-03-15T16:23:04.037 に答える