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

使用htmlspecialchars转换引号,并在PHP中保留HTML标记,php,html,quotes,double-quotes,htmlspecialchars,Php,Html,Quotes,Double Quotes,Htmlspecialchars,我有一个隐藏的输入标记,我希望它的值中有引号。如何转义引号,以便将其用于值 HTML PHP $terms=mysql\u real\u escape\u字符串($terms); 回声'; 我想同时使用单引号和双引号,但是将其设置为value='\“请在此处输入任何其他条款和条件。\”“不允许我使用单引号 函数htmlspecialchars让我们来完成这一点,但它将去掉HTML标记。例如,将转换为p。我希望能够保留标记,并将引号转换为“尝试以下方法: <input name="ed

我有一个隐藏的输入标记,我希望它的值中有引号。如何转义引号,以便将其用于值

HTML


PHP

$terms=mysql\u real\u escape\u字符串($terms);
回声';
我想同时使用单引号和双引号,但是将其设置为
value='\“请在此处输入任何其他条款和条件。\”

不允许我使用单引号

函数
htmlspecialchars
让我们来完成这一点,但它将去掉HTML标记。例如,
将转换为
p
。我希望能够保留
标记,并将引号转换为

尝试以下方法:

<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.'" />';
$terms=“”请在此处输入任何其他条款和条件。“

”; 回声';
首先,HTML不是MySQL。所以MySQL函数在这里没有帮助

第二,在HTML属性值上使用:

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

对于单引号中的属性值,请将
htmlspecialchars
与ENT\u quotes标志一起使用。

您的问题不清楚,为什么需要这个?以及为什么在上一个示例中使用单配额时逃逸了双配额?
value='\“请……
mysql\u real\u escape\u string()就像在cakephp或任何更好的php代码中必须使用的最后一个函数一样。@Akam我正在制作的网站需要这个函数。我跳过了双引号,因为它显示了我遇到的错误。在PHP中我该怎么做?@Daniel单击此处查看结果如果我使用
htmlspecialchars
,它将
标记转换为我不想要的
p
。如果不这样做,我将如何使用它。@Daniel结果值是相同的。
$terms ="<p>&quot;Please enter any additional terms and conditions here.&quot;</p>";           
echo '<input type="hidden" name="edited_terms" value="'.$terms.'" />';
$terms = htmlspecialchars($terms);
echo '<input type="hidden" name="edited_terms" value="'.$terms.'" />';