php - 为什么 strpos 不适用于 ">"和其他字符

标签 php strpos

我想检查是否在字符串中找到特殊字符,如“<” “>”或双引号本身。但是我的函数总是返回 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/

相关文章:

php - 使用 Codeigniter 更新 mysql 数据库

PHP-MYSQL语法错误

php - in_array vs strpos 在 php 中的性能

c++ - pcmpestri指令写出类似strpos的函数?

PHP mb_strpos 对于希腊字符串失败

php - 在 Symfony2 中加载 php 扩展 - 连接到 SAP

php - QR码位置检查

php - Laravel - 从数据库生成 CSS

php - 在 PHP 中搜索字符串标题后的数据

php - 在PHP中检测Google Analytics(分析)代码