2015-10-21 3 views
0

Im создает социальную сеть, и этот скрипт является функцией поиска.Почему этот скрипт просто дает мне 1 вывод (strpos PHP)

$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 значение в выходном массиве ... Венна есть больше пользователей с а в нем (это дает мне ни один выход, когда я искать более чем один).

+0

if ("$ user"! == ".." || "$ user"! == "." || "$ user"! == "$ username") { Я думаю, вы пропустили |? – MuthaFury

ответ

1

strpos может возвращать 0, что действительно (означает, что строка начинается с поисковой фразы), но она не пройдет проверку if(strpos($user, $search)).

Рассмотрите возможность добавить if(strpos($user, $search) !== false).

Также удалите побитовый или | и замените его логическим или ||.