1. Acuna - 05 Декабря, 2008 - 00:50:36 - перейти к сообщению
Здравствуйте! У меня вопрос: можно-ли с помощью регулярных выражений заменить теги <title></title> на <мойтег></мойтег>, НО ТОЛЬКО ПРИ УСЛОВИИ, что в тегах <title></title> есть слово "Регистрация", а иначе замену не производить? Заранее благодарен!
2. Champion - 05 Декабря, 2008 - 08:56:39 - перейти к сообщению
$line = preg_replace("/\<title\>[^<>]*Регистрация[^<>]*\<\/title\>/i", '<ваш тэг/>', $line)
(Добавление)
И если слово "Регистрация" надо оставить, так и напишите в строке замены
(Добавление)
И если слово "Регистрация" надо оставить, так и напишите в строке замены
3. Acuna - 05 Декабря, 2008 - 15:16:19 - перейти к сообщению
ВО! Класс! Работает! Но что делать, если это слово "Регистрация" в тегах <tag></tag> записано вот так: <tag><a href="regist.php">Регистрация</a></tag> (но может и по-другому, не обязательно ссылкой). Что можно тогда сделать?
4. Champion - 05 Декабря, 2008 - 15:43:28 - перейти к сообщению
Вам нужно было заменить тэги title). А в нем других тэгов вроде бы как не должно быть
(Добавление)
Если вы про то, что параметры у тэга могут быть$line = preg_replace("/\<title[^>]*\>[^<>]*Регистрация[^<>]*\<\/title\>/i", '<ваш тэг/>', $line)
(Добавление)
Если вы про то, что параметры у тэга могут быть$line = preg_replace("/\<title[^>]*\>[^<>]*Регистрация[^<>]*\<\/title\>/i", '<ваш тэг/>', $line)
5. Acuna - 05 Декабря, 2008 - 21:00:29 - перейти к сообщению
<title> - это я просто название тега указал... Мне хочется заменить <tag></tag> на <тег></тэг> в этой строке: <tag><a href="regist.php">Регистрация</a></tag>, но в результате чтобы содержание в тегах сохранялось. (т. е. заменить <tag><a href="regist.php">Регистрация</a></tag> на <тэг><a href="regist.php">Регистрация</a></тег> ), то только тогда, когда в тегах <tag></tag> есть слово "Регистрация" в любом месте.
6. Champion - 05 Декабря, 2008 - 22:12:44 - перейти к сообщению
думаю, что тогда надо preg_replace_callback. Завтра поподробнее напишу, а то спать уже пора)
7. Champion - 06 Декабря, 2008 - 10:37:24 - перейти к сообщению
CODE (text):
скопировать код в буфер обмена
скопировать код в буфер обмена
- preg_replace_callback ('/(\<tag\>).*Регистрация.*\(<\/tag\>)/iU', replacing)
- function replacing($matches)
- {
- var_dump($matches); // смотрм в каких элементах массива оказались нужные нам названия тэгов. вроде 1 и 2, но на всякий случай...
- $matches[?] = '<new tag>';
- $matches[?] = '</new tag>';
- }
вроде вот так