使用PHP在文本框中显示动态文本时转义单引号和双引号


Escaping single and double quotes while displaying dynamic text in textbox using PHP

我想显示html形式的文本(文本字段),来自数据库,所以我使用以下代码

....
.....
<input type="text" name="txtqname" id="txtqname" value="<?=$myvar ?>"></input>
....
.....

这里$myvar是一个变量,它的值来自数据库,可能包含单引号或双引号。因此,我的文本没有正确显示在文本字段中,因为我想。我尝试用单引号代替双引号

....
.....
<input type='text' name='txtqname' id='txtqname' value='<?=$myvar ?>'></input>
....
.....

但是我仍然没有得到正确的文本。请帮帮我。

很简单,你所要做的就是:

<input type="text" name="txtqname" id="txtqname" value="<?= htmlspecialchars( $myvar ) ?>"></input>

只使用htmlentities()htmlspecialchars()

http://php.net/manual/de/function.htmlentities.php

您应该使用适当的addslashes()和stripslashes()来格式化数据。在插入数据库之前,请确保每个数据都正确格式化。也可以试试mysql_real_escape_string()

你可以使用htmlentities函数与ENT_QUOTES,

示例:htmlentities($myvar, ENT_QUOTES);

ENT_QUOTES将转换双引号和单引号