Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Определить наличие слова в строке
$str='зеленые, очень зеленые глаза разьяренного хомячка';
Мне нужно узнать сколько раз встречается в ней некоторая последовательность символов, тоесть какое- либо слово.
Тоесть та функция которая при написании в её аргумантах (хомячка, $str) вернет 1,
при аргументах (монитор, $str) вернет 0, при аргументах (зеленые, $str) вернет 2.
Пожалуйста, подскажите что за функция, если есть такая, ну а если нету - подскажите чтонибудь похожее, или как сделать такое.
----- Just be a Person
EuGen
Отправлено: 17 Сентября, 2007 - 19:27:19
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
первое, что приходит в голову: (этот пример настолько прост, что наверное даже не имеет смысла его в функцию выносить, но я вынес для наглядности)
For 50 runs of script with str_count() average time was: 0.150538878441
For 50 runs of script with str_count2() average time was: 0.136740336418
Обртим внимание ещё и на addslashes
часто с данными ещё нужно делать кой какие операции
поэтому addslahes или mysql_escape_string
и если данные обрабатывать при получении экономим массу времени и сил.
Это для нашей строки. с хомячками.
А если строка чуть чуть подлиннее -
разница получается на лицо, хотя даже 0,02 секунды это много
Так что пользуйтесь на здоровье str_count2
или если и вам лень редактировать код, наплеавть на пользователя и придерживаетесь политики майкрософта, то оставьте первый который вы уже списали =)
Я бы точно не стал бы менять если у вас строки из пары слов
----- Truly yours, Sasha.
evgenijj
Отправлено: 17 Сентября, 2007 - 21:47:43
Участник
Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006 Откуда: Москва
Помог: 10 раз(а)
EuGen пишет:
этот пример настолько прост, что наверное даже не имеет смысла его в функцию выносить
The captain wore his cap and cape proudly as he sat listening to the recap of how his crew saved the men from a capsized vessel.
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
=)
----- Truly yours, Sasha.
EuGen
Отправлено: 18 Сентября, 2007 - 11:37:07
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Заметьте я сразу же оговорился, что это не оптимальный пример. А только какое-то решение задачи. причем первое пришедшее в голову
Так что да, конечно можно использовать preg_match_all и т.п. (можно наверное и еще оптимальнее как-то), но я за скоростью не гнался.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
valenok
Отправлено: 18 Сентября, 2007 - 20:53:15
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
Я вас не обвиняю =)
Но идея мне очень понравилась =)
----- Truly yours, Sasha.
murich
Отправлено: 19 Сентября, 2007 - 15:43:04
Новичок
Покинул форум
Сообщений всего: 19
Дата рег-ции: Авг. 2007
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.