Forum Webscript.Ru
Программирование => PHP => Тема начата: MishaZ от 27 Августа 2002, 05:44:24
-
Или баг Зенда =)
Доброе время суток всем знатокам ПХП, да и просто ВСЕМ.
Дело вот в чём, у меня есть массив Фамилий некоторой базы, по которой я хочу организовать приметивненький поиск, его примерный код внизу (переменная $name- введённая для поиска фамилия), так вот проблема в том что этот скрипт не ищет фамилии с первой буквы...поясняю , если я ввожу "Иванов" то он ни чего не выдваёт , а если "ванов", то выдаёт и всех "Ивановых" и всех "Ливановых" , вообщем все фамилии в которых встречается это буквосочетание.
Помогите плз......
============Примерный код=============
for ($i=0;$iif (strpos($fio[$i],$name)!=false){
echo "Эта фамилия !!!".$base->fio[$i]."
";
}
-
попробуй
if (strpos($fio[$i],$name) === true){
-
Какое true???
!== используй...
for ($i=0;$iif (strpos($fio[$i],$name)!==false){
echo "Эта фамилия !!!".$base->fio[$i]."
";
}
-
Совершенно верно Макс говорит. Это "багофича" ПХП, если искомая подстрока найдена в самом начале strpos возвращает значение 0 (позицию начала подстроки в строке) а не false, а if с оператором "!=" думает, что 0 это то же что и false. Необходимо проверять точное соответствие "типа" оператором "===" (ну или "!==").
-
Это не багофича. Это совершенно логичное и правильное дело.
-
Вах..спасибо всем огромное...=)
-
Доктор
А может лучше писать
for ($i=0;$i
if (strpos($fio[$i],$name)>-1){
echo "Эта фамилия !!!".$base->fio[$i]."
";
}
-
Нет, не лучше.
-
в таком случае проще юзать stristr (strstr)