通过我的应用程序,我想显示值htmlentities(str),因为没有对single或double或任何特殊char的限制。 而不是使用或转换htmlentities(str),如
<input id="text" name="text" value="<?php if(isset($_POST['text'])) { echo htmlentities($_POST['text']); } ?>
有没有办法为所有文本框全局设置?
答案 0 :(得分:1)
在codeigniter中,我们可以将其作为$rules['other_gait']="htmlentities|max_length[200]";
但感谢提示使用htmlentities。
答案 1 :(得分:0)
使用你的代码结构 - 不,但你可以预处理$ _POST ..这种方法不是很好,但是如果你只填写你的表单,就像在例子中一样,它会起作用。
$parametersToPreprocess = array(
'text1',
'text2',
);
foreach (array_keys($_POST) as $postKey) {
if (in_array($postKey, $parametersToPreprocess)) {
$_POST[$postKey] = htmlentities($_POST[$postKey]);
}
}
答案 2 :(得分:0)
不。 PHP的内置模板没有自动转义输出值的功能。您可以管理的最好方法是定义一个具有短名称的函数,以节省一些输入:
<?php
function h($s) {
echo htmlspecialchars($s, ENT_QUOTES);
}
?>
<input id="text" name="text" value="<?php h(isset($_POST['text'])? $_POST['text'] : ''); ?>">
(注意:htmlspecialchars
,而不是htmlentities
,它会尝试对所有非ASCII字符进行HTML编码,如果你没有传递正确的{{1} }参数。)