我想检查字符串中是否存在特殊字符,如"<">"或双引号本身。但我的函数总是返回true。
谢谢
这是代码:
$name = "<h1><dfdafdfds";
function correctName($name){
if (strlen($name) < 5 || (strpos($name, "<")===true) ||
(strpos($name, ">")===true) || (strpos($name, "'"")===true)){
return false;
}else{
return true;
}
}
false
,要么返回一个整数值,如5
。它不返回true
。
因此(strpos($name, "<")===true
总是返回false。
您的代码评估为:
if (strlen($name) < 5 || false) ||
(false) || (false)){
return false;
}else{
return true;
}
您需要使用以下格式:
strpos($name, '<') !== false
所以你的代码应该看起来像:
if (strlen($name) < 5 || strpos($name, "<") !== false || strpos($name, ">") !== false || strpos($name, "'"") !== false) {
strpos
从不返回TRUE
。它可能返回FALSE
。解决方案:更改与!== FALSE
的比较