我有一个输入框,用 php 会回显输入的名称。问题是当用户按下空格时,它会回显空白字符。我已经搜索并没有找到绝对答案。我知道!empty
如果在输入字段中有absoutely anthing但如果有空格则应该使用null。
如果输入中有空格,如何避免得到回声?
if (!empty($name['name']) || null ) {
echo 'Your name is '.$name;
}
{
//do nothing
}
我有一个输入框,用 php 会回显输入的名称。问题是当用户按下空格时,它会回显空白字符。我已经搜索并没有找到绝对答案。我知道!empty
如果在输入字段中有absoutely anthing但如果有空格则应该使用null。
如果输入中有空格,如何避免得到回声?
if (!empty($name['name']) || null ) {
echo 'Your name is '.$name;
}
{
//do nothing
}
如果未设置、null、空字符串、布尔值 false 或 0,则对函数的调用empty()
将为 true。我仍然喜欢在条件语句中避免繁重的逻辑......在测试之前拉出修剪和准备字符串。
$nameString = empty($name['name'])?null:trim($name['name']);
if(!empty($nameString){
//go to town here
}
为了提前安抚狂热分子,我还必须补充一点,您应该在打印之前转义任何用户输入。这样你就可以防止 XSS。为了更安全添加试试这个:
$nameString = empty($name['name'])?null:trim($name['name']);
$nameString = htmlentities($nameString, ENT_QUOTES);
if(!empty($nameString){
//go to town here
}
但是,附带说明...该htmlentities()
调用不能防止 SQL 注入,因此如果此数据进入数据库,您将不得不做更多的工作——因为您的问题并未表明您正在做任何其他事情打印到屏幕上,我们可以将 SQL 注入讨论推迟一天。
您想检查是否有空格,您可能需要这样做:
if ($name['name'] != null && trim($name['name']) != "" && !strpos(trim($name['name']), " "))
{
// work with $name['name']
}
else
{
// nothing
}
小心使用empty(),如果用户输入'0',它将返回TRUE。
您可能想使用 strlen()