为什么这个脚本只给我一个输出(strpos PHP)

时间:2015-10-21 08:43:22

标签: php search strpos

我正在创建一个社交网络,这个脚本是一个搜索功能。

$username = $_SESSION['username'];
$search = $_POST['search'];
//strpos($user,$search)
$path = "../database/users";
$users = scandir($path);
$output = array();
$count = 0;
foreach($users as $user) {
    if ("$user" !== ".." || "$user" !== "." | "$user" !== "$username") {
        if(strpos($user, $search)) {
            $count = $count + 1;
            array_push($output, $user);
    }

}

}

现在我想知道为什么它在输出数组中只给出了1个值... wenn有更多用户使用a(当我搜索多个时它没有输出)。

1 个答案:

答案 0 :(得分:1)

strpos可能会返回0,这是有效的(表示字符串以搜索短语开头),但它不会通过if(strpos($user, $search))检查。

考虑添加if(strpos($user, $search) !== false)

同时删除按位或|并将其替换为逻辑或||