使用htmlspecialchars转换引号并在PHP中保留HTML标记

时间:2013-03-19 20:01:53

标签: php html quotes double-quotes htmlspecialchars

我有一个隐藏的输入标记,我希望它的值包含引号。我如何逃避引号,以便我可以将它用于值?

HTML

<input type="hidden" name="edited_terms" 
value="<p>\"Please enter any additional terms and conditions here.\"</p>" />

PHP

$terms = mysql_real_escape_string($terms);
echo '<input type="hidden" name="edited_terms" value="'.$terms.'" />';

我想同时使用单引号和双引号,但将其设置为value='<p>\"Please enter any additional terms and conditions here.\"</p>'不会让我使用单引号。

函数htmlspecialchars让我完成了这个,但它将摆脱HTML标签。例如,<p>将转换为&lt;p&gt;。我希望能够保留<p>代码并将引号转换为&quot;

2 个答案:

答案 0 :(得分:0)

试试这个丹尼尔:

<input name="edited_terms" 
value="<p>&quot;Please enter any additional terms and conditions here.&quot;</p>" />

更新PHP:

$terms ="<p>&quot;Please enter any additional terms and conditions here.&quot;</p>";           
echo '<input type="hidden" name="edited_terms" value="'.$terms.'" />';

答案 1 :(得分:0)

首先,HTML不是MySQL。所以MySQL函数在这里没有帮助。

其次,在HTML属性值上使用htmlspecialchars

$terms = htmlspecialchars($terms);
echo '<input type="hidden" name="edited_terms" value="'.$terms.'" />';

对于单引号中的属性值,请使用带有 ENT_QUOTES 标记的htmlspecialchars