PHP如何在输入文本框中转义文本


php how to escape text in input textbox

我想用数据库中的文本预填充一个输入文本框。但是,如果来自数据库的文本包含某些特殊字符,例如"标记,则会干扰html并截断引号之后的所有内容。

Addslashes和urlencode不工作,因为文本框显示ascii文本,您只看到引号之前的斜杠标记或编码文本(如%026)。

代码:

<?php
//access data base
while $row=mysql_fetcharray($res) {
$dim =$row['dimension'];
}
echo 'Dimensions: <input type="text" size=20 name="dim" value="'.$dim.'">'; //truncates
echo 'Dimensions: <input type="text" size=20 name="dim" value="'.addslashes($dim).'">'; //shows slashes in textbox

?>

你要找的是htmlspecialchars():

某些字符在HTML中有特殊的意义,如果要保留它们的含义,就应该用HTML实体来表示。

echo 'Dimensions: <input type="text" size=20 name="dim" value="'.htmlspecialchars($dim).'">';

试试这个:

<?php
    $str = "Keep the 'quote'.";
    echo htmlentities($str, ENT_QUOTES, "UTF-8");
?>

阅读更多:htmlentities