нужна помошь, preg_replace

elfff

Новичок
нужна помошь, preg_replace

например есть текст

PHP:
<b>Заголовок</b>
<img src="jpg.jpg" alt="Заголовок">
<br><br>
<p>Заголовок Заголовок Заголовок Заголовок</p>
<a href="">Заголовок Заголовок</a> <a href="">Заголовок Заголовок</a> <a href="">Заголовок Заголовок</a>
нужно заменить слово "заголовок" например на "<p class=zagolovok>ЗАГОЛОВОк</p>" чтобы он не заменял в тегах A href, img, object
 

AmdY

Пью пиво
Команда форума
не используй регулярок. слово "заголовок" находится в инлайн элементе, не пытайся сунуть туда блочный p.
используй айдишники и (или) DOM
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
elfff
Кому нужно тебе или нам?
В данном форуме не пишут за тебя код по первому требованию.
В нем лишь помогают решить задачу при обоюдном согласии.
А его не будет при такой постановке вопроса.

-~{}~ 23.01.09 20:35:

http://www.phpfaq.ru/regexp
ну и конечно-же
http://tinyurl.com/bgjuzq

-~{}~ 23.01.09 20:36:

А вопрос то к чему относится?
(Нужное подчеркнуть)

PHP & JavaScript & AJAX & HTML & FLASH
:D
 

elfff

Новичок
извиняюсь:) нужно мне, ищу решение, прбовал разные способы, но без результатно, хотя опыт работы с php огромный, но видимо не достаточно, поэтому прошу помоши у знатаков!
 

Glazyrin Sergey

Новичок
Автор оригинала: elfff
извиняюсь:) нужно мне, ищу решение, прбовал разные способы, но без результатно, хотя опыт работы с php огромный, но видимо не достаточно, поэтому прошу помоши у знатаков!
Если вы потрудитесь объяснить какая у вас точно задача, то может и помогут. Может быть можно проще обойтись ? В чем делаете ? PHP, Javascript ? Зачем делаете ?
 

elfff

Новичок
php

попытаюсь свою задачу по другому описать)

PHP:
$text='<div align="center"><img src="name.jpeg" class="img" alt=\' тектст которы может совпасть \' /></div>
<!--start-->
<div>
<br /><b>тектст которы можно заменять</b><br />
<!--erunda-->
<p>тектст которы можно заменять</p>
<br /><br />
<a href="link.html" tittle="тектст которы может совпасть">тектст которы может совпасть</a><br />
<br />
<!--End--></div>';  

$search="текст";

$replace="<table class=new><tr><td>текст</td></tr></table>";

echo  str_replace($search, $replace, $text);
у меня не получается заменить например слово "текст" на "<table class=new><tr><td>текст</td></tr></table>"
так чтобы он не заменялся в тегах <img><a>
 

FB3

Новичок
В данном виде можно загрузить строку в XML, потом с помощью xpath вытащить только нужные строчки, заменить в них и вставить обратно.
А если просто регэксп, то нужно проверять, что слева от текста нету открывающей угловой скобки, а справа, соответственно, закрывающей.
 

dimagolov

Новичок
elfff, да набуя тебе вообще что-то выделять тегами? можешь сказать? какой смысл в таком выделении?
 

elfff

Новичок
выделять тегами мне обязательно нужно, смысл в том чтобы к существующему тексту вытаскивать из базы слова, и прибавлять к тексту подсказки
чтобы получилось слудуюущее:

PHP:
<div align="center"><img src="name.jpeg" class="img" alt=\' тектст которы может совпасть \' /></div>
<!--start-->
<div>
<br /><b><a href="#" tittle="Текст это безсымсленное слово">тектст</> которы можно заменять</b><br />
<!--erunda-->
<p><a href="#" onmouseover="func()">тектст</a><span class="tooltip">Текст это безсымсленное слово</span> которы можно заменять</p>
<br /><br />
<a href="link.html" tittle="тектст которы может совпасть">тектст которы может совпасть</a><br />
<br />
<!--End--></div>
FB3 , я погуглил про xpath (чесно говоря впервые о нем слышал)
 

Glazyrin Sergey

Новичок
Могу дать очень хорошую книгу по регулярным выражениям
FB3 прав
А если просто регэксп, то нужно проверять, что слева от текста нету открывающей угловой скобки, а справа, соответственно, закрывающей.


Это называется претензии - научишься их использовать и считай - регулярные выражения знаешь на ты :)
 

dimagolov

Новичок
а существующий текст в HTML? по-моему регулярки не годятся для такого, надо строить DOM представление и там добавлять нужное.
 

dimagolov

Новичок
на дклабе ему посоветовали поменять все теги на плейсхолдеры и потом оборачивать что там он хочет. тоже много проще, чем пытаться сделать одной регуляркой.
 
Сверху