Форум сетевых администраторов
Показаны 2 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- PHP (http://netadmin.ws/forum/forumdisplay.php?forumid=6)
-- preg_match_all не выделяет в массив близкорасположенные области (http://netadmin.ws/forum/showthread.php?threadid=9255)


Помещено W.M. 29-07-2004 в 14:03:

Question preg_match_all не выделяет в массив близкорасположенные области

Задача такая: Есть строка. В ней нужно найти слова из списка, выделить жирным и по бокам от них оставить по нескольку слов, ну штук по 10 к примеру (не важно сколько).

Ð_ешаю так(в этом примере оставляются не 10 слов а по 80 символов и потом (здесь не показано) отбрасывается с начала и с конца по неполному слову):

PHP:


$words 
= implode("|", $words_array);
$str = preg_replace("/($words)/i", "<b>1</b>", $str);
    
$tmp = preg_match_all("|.{0,80}<b>($words)</b>.{0,80}|i", $str, $hlarray);
print_r($hlarray);


Вот. Если между словами в $words больше 80 символов, не важно где они находятся хоть по краям $str, все работает замечательно. Если же слова стоят рядышком, перестает работать, выводит что-то типа Warning: Unknown modifier 'а' in (script name) и ругается на строку с preg_match_all

Подскажите плиз где ошибка, и есть ли она вообще (на счет пересечения областей выделения в массив - может так и не должно работать?) а я пока сам поищу поэксперементирую...

Спасибо!

W.M. добавил 29-07-2004 в 15:25:40:
Так, вопрос снимается

Тыкнули пальцем в мануал:
After the first match is found, the subsequent searches are continued on from end of the last match.

Буду искать другие пути... Хотя все навно не понятно, если он после каждого поиска "отрезает" уже просмотренную часть, должен находить тогда хотя бы первое и последнее вхождение... а он выдает ошибку


Помещено W.M. 30-07-2004 в 08:23:

Вроде и с остальным разобрался... ошибка была в синтаксисе regexp-a, теперь выделяет все что нужно...

Всем спасибо за внимание тему можно закрывать


Формат времени GMT. Текущее время 11:26.
Показаны 2 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.