将PHP字符串变量添加到包含引号的文本框值

时间:2011-03-22 00:47:16

标签: php string variables escaping quotes

我正在尝试使用php变量填充HTML文本框。变量是一个带有单引号的字符串,并从数据库中检索。

当我回显变量时,它看起来应该是 - 即。 “这是我的字符串”所以,它正确显示'单引号。

但是当我尝试将该变量放入文本框字段时,即。

<? echo("<input type='text' name = 'title' value='$title'/>");?>

引号被忽略..

我非常感谢任何帮助,因为我尝试通过一些HTML格式化函数运行变量,但无济于事。

3 个答案:

答案 0 :(得分:6)

您应该将其更改为:

<input type="text" name="title" value="<?php echo htmlentities($title, ENT_QUOTES); ?>" />

htmlspecialchars()htmlentities()用于使用正确的编码将字符串转换为HTML。

ENT_QUOTES选项可确保撇号和语音标记也正确编码。

答案 1 :(得分:1)

使用带有ENT_QUOTES标记的htmlentitieshtmlspecialchars在输出文本之前转义文本中的引号。

答案 2 :(得分:1)

<?php echo '<input type="text" name="title" value="'.htmlentities($title, ENT_QUOTES).'" />'; ?>