Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как определить найдена строка в строке или нет?
 
 автор: Alex Boxgorn   (27.07.2007 в 11:12)   письмо автору
 
 

У меня возникла проблема. К примеру есть строка $rt="Сережа". Если мы ищем $pizicia=strpos($rt, "Сережа"), то $pizicia=0, если не найдено совпадение то переменная неопределена, что тоже является нулем. Как однозначно определить найдено что-то или нет?

   
 
 автор: Faraon   (27.07.2007 в 11:16)   письмо автору
 
   для: Alex Boxgorn   (27.07.2007 в 11:12)
 

strpos возвращает числовую позицию первого вхождения needle в строке haystack
Если найдена возвращает номер позиции, после какой было найдено вхождение, в противном случае False если не найдено

   
 
 автор: Alex Boxgorn   (27.07.2007 в 11:27)   письмо автору
 
   для: Faraon   (27.07.2007 в 11:16)
 

Так это понятно. Чем отловить и как должно выглядеть IF ?
Вот так делаю If($pozicia>=0){echo "найдено";}else{echo "не найдено";}
Тут при $pozicia=false условие срабатывает, что НАЙДЕНО.

   
 
 автор: Faraon   (27.07.2007 в 11:37)   письмо автору
 
   для: Alex Boxgorn   (27.07.2007 в 11:27)
 

>Тут при $pozicia=false условие срабатывает, что НАЙДЕНО.
Здесь идет не оператор присваивания (=), а оператор сравнивания (==)



if (strpos(haystack,needle) == false)
   echo "Вхождение не найдено";

   
 
 автор: Trianon   (27.07.2007 в 11:44)   письмо автору
 
   для: Faraon   (27.07.2007 в 11:37)
 

if (strpos(haystack,needle) == false)
echo "Вхождение не найдено";


код неверный.
Верный код привел ddhvvn

   
 
 автор: Faraon   (27.07.2007 в 11:59)   письмо автору
 
   для: Trianon   (27.07.2007 в 11:44)
 

И в чем же он не верен???
Аргументируйте
Можно написать и так

if (strpos(haystack,needle) == true)
   echo "Вхождение найдено";

   
 
 автор: Trianon   (27.07.2007 в 12:14)   письмо автору
 
   для: Faraon   (27.07.2007 в 11:59)
 


$needle = "A quick";
$haystack = "A quick brown fox";

if (strpos($haystack,$needle) == true) 
   echo "Вхождение найдено"; 
if (strpos($haystack,$needle) == false) 
   echo "Вхождение не найдено"; 


Запустите у себя. Тут оба Ваши варианта.
Это Вас устроит в качестве аргумента?

   
 
 автор: Faraon   (27.07.2007 в 12:21)   письмо автору
 
   для: Trianon   (27.07.2007 в 12:14)
 

Устроило :)))

   
 
 автор: ddhvvn   (27.07.2007 в 11:29)   письмо автору
 
   для: Faraon   (27.07.2007 в 11:16)
 


if (strpos(haystack,needle) !== false)
   echo "Вхождение найдено";

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования