我想检查是否在字符串中找到特殊字符,如“<” “>”或双引号本身。但是我的函数总是返回 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;
}
}
最佳答案
Strpos 要么返回 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) {
关于php - 为什么 strpos 不适用于 ">"和其他字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12103995/