|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.06.2010, 14:24 | #1 |
Пользователь
Регистрация: 29.04.2010
Сообщений: 31
|
регулярные выражения и массив
добрый день
Есть простая замена слов в цыкле но возникла проблема при замене заменяет оно к примеру "столешница" на "100лешница" не по совпадению слов а по совпадению символов как исправить чтобы если слово "сто" то замена делалась на 100 а если слова столешница пропускалась? for ($i = 0; $i < count($ffff[1]); $i++) { $buffett = str_replace($ffff[1][$i], "<b>".$ffff[2][$i]."</b>", $buffett); } |
01.06.2010, 19:19 | #2 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
Может, не совсем правильно понял из-за того, что написано не понятно, но, может, так:
if ($buffett=="столешница") continue; Аналогично можно дописать условие и на if (...="сто") и т.п. |
01.06.2010, 20:01 | #3 |
Форумчанин
Регистрация: 21.02.2009
Сообщений: 372
|
Не уверен, что вариант наилучший, но можно попробовать разбить текст на слова и занести каждое слово в массив с помощью функции explode(). После этого циклом пройтись по массиву и с помощью функции preg_replace() уже что то менять. Потом восстанавливаешь текст функцией implode().
No name. Just Linel.
|
01.06.2010, 22:23 | #4 | |
Пользователь
Регистрация: 29.04.2010
Сообщений: 31
|
Цитата:
|
|
01.06.2010, 23:02 | #5 |
Laravel/Vue expert
Старожил Подтвердите свой е-майл
Регистрация: 08.08.2007
Сообщений: 2,832
|
юзайте preg_replace
|
01.06.2010, 23:08 | #6 |
Antimoderаtoris
Участник клуба
Регистрация: 08.02.2008
Сообщений: 1,251
|
Во-первых, зачем сделан цикл? $ffff[1][$i] - тоже массив? Или строка?
Читаем внимательно мануал, "о боже", функция str_replace прекрасно работает с массивами. При чём гораздо быстрее чем ваше for ($i = 0; $i < count($ffff[1]); $i++). Во-вторых, в вашем случае прийдётся использовать preg_replace, так как вам нужно искать целые слова, без пробелов и знаков препинания. Да, кстати, preg_replace также отлично работает с массивами. Только нужно не забывать, что там нужно подставлять шаблон.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Регулярные выражения | Syltan | JavaScript, Ajax | 3 | 24.04.2010 23:08 |
Регулярные выражения | adwaer | Общие вопросы .NET | 4 | 24.02.2010 17:38 |
Регулярные выражения | Adamant | Общие вопросы C/C++ | 1 | 26.11.2007 19:44 |