0
echo '<tr class="questiontd"><td>'.htmlspecialchars($question).'</td>';
echo "<td class='addtd'><button type='button' class='add' onclick=\"parent.addwindow('$question');\">Add</button></td></tr>";

上記のコードでは、たとえば次のように表示されます。

質問ボタン

「2+2とは」追加(ボタン)

""しかし、私は質問を回避したくありません.以下のように表示したいです:

質問ボタン

2+2 Add(ボタン)とは

テキストを囲む二重引用符を削除する方法を知っている人はいますか? (さらにコードが必要な場合は、私にコメントしてください)

4

4 に答える 4

4

テキストを HTML に挿入しています。エスケープするには、 を使用しますhtmlspecialchars。HTML は JSON ではありません。使用しないでくださいjson_encode

echo '<tr class="questiontd"><td>'.htmlspecialchars($question).'</td>';
于 2012-10-08T14:59:32.477 に答える
0

htmlspecialchars()それらを取り除くために使用するだけです。

echo '<tr class="questiontd"><td>', htmlspecialchars($question), '</td>';

実行される翻訳は次のとおりです。

'&' (ampersand) becomes '&amp;'
'"' (double quote) becomes '&quot;' when ENT_NOQUOTES is not set.
"'" (single quote) becomes '&#039;' (or &apos;) only when ENT_QUOTES is set.
'<' (less than) becomes '&lt;'
'>' (greater than) becomes '&gt;'
于 2012-10-08T15:00:50.360 に答える
0

これは本当です

HTMLを吐き出すだけなのに、なぜjsonで質問をエンコードするのですか? エンコードしないでください。おそらく引用符を取得できません。

しかし、まだ json_encode の使用を主張している場合の簡単な解決策として

echo '<tr class="questiontd"><td>'.str_replace(json_encode($question),"\"","").'</td>';

またはよりエレガントに

echo '<tr class="questiontd"><td>'.htmlspecialchars($question).'</td>';
于 2012-10-08T15:01:35.760 に答える
0

2 行目から json_encode を削除します。文字列を json エンコードすると、常に二重引用符で囲まれます。

于 2012-10-08T15:00:02.307 に答える