разбить текст на слова и заменить по условию

RO
На сайте с 13.07.2009
Offline
88
1195

разбить текст на слова и заменить те которые подходят под условие.

есть к примеру такой текст:

$text='<p><img src="/dir/gif.gif" alt=" кухни " title="кухни"> <a href="dir/file.html" title="кухни">Современные

кухни';

далее разбиваю его и заменяю мне нужные слова:

$s=sizeof($word);

for($i=0;$i<$s;$i++)
{
if(strpos($word[$i],'alt')===false and strpos($word[$i],'title')===false) $word[$i]=str_replace($word[$i],'<b>'.$word[$i].'</b>',$word[$i]);
}

но задача стоит что бы не изменять слова которые лежат в title и alt.

на выходе получаем

    [0] => <b>Кухоньки</b>

[1] => <b><img</b>
[2] => <b>src="/dir/gif.gif"</b>
[3] => alt="
[4] => <b>кухни</b>
[5] => <b>"</b>
[6] => title="кухни">
[7] => <b><a</b>
[8] => <b>href="dir/file.html"</b>
[9] => title="кухни">Современные
[10] => <b>кухни</a></b>

если присмотреться то видно что все же заменились те слова что не попали под условие так как содержали пробелы...

    [3] => alt="

[4] => <b>кухни</b>
[5] => <b>"</b>

вот такой я извращенец, говнокодю по ночам...

кто что подскажет?

dvaes
На сайте с 03.09.2007
Offline
65
#1

не понял зачем все это и какой текст в итоге должен получиться

B
На сайте с 24.09.2005
Offline
62
#2

то есть не заменять слова внутри <> ?

$arr = preg_split('~<[^>]+>~isU', $text )

и меняй $arr

Куда делось свободное место (http://se-chronicle.blogspot.com/) на жестком диске
RO
На сайте с 13.07.2009
Offline
88
#3

четок не то, но чувствую истинна гдето рядом, таким методом текст разбивается н массив, каждая ячейка которого содержит по несколько слов. у меня же должно получится в каждой ячейке по одному слову. спасет ли меня тут регулярка? или в худой конец извратится со вложенными циклами и двумерным массивом?

B
На сайте с 24.09.2005
Offline
62
#4

preg_split('~[\s,\.\?\!]+~ ', implode (' ', $arr)); будет по одному слову

ps. сказали бы что на до в итоге

RO
На сайте с 13.07.2009
Offline
88
#5

в итоге должен получится автоперелинковщик страниц, сами понимаете для чего.

B
На сайте с 24.09.2005
Offline
62
#6

то есть заменял только в тексте ?

wp плагин simpletags по моему, в нем есть функция замена тега на ссылку тега, меняет внутри поста, там хитрую замену и найдете )

ewg777
На сайте с 04.06.2007
Offline
225
#7
RedOK:
в итоге должен получится автоперелинковщик страниц, сами понимаете для чего.

Для Вас лучше взглянуть на готовые плагины.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий