Forum Webscript.Ru

Программирование => PHP => Тема начата: Gorets от 27 Февраля 2003, 16:53:46

Название: Автозамена текста
Отправлено: Gorets от 27 Февраля 2003, 16:53:46
Есть текст в котором встречаются фразы "Матрица" и "Матрица 2: Перезагрузка"
Этот текст обрабатывается следующим образом:
$string=ereg_replace(\'Матрица 2: Перезагрузка\',\'Матрица 2: Перезагрузка\',$string);
$string=ereg_replace(\'Матрица\',\'Матрица\',$string);

Мне надо получить вот такой результат:
Матрица
Матрица 2: Перезагрузка

а получаю вот что:
Матрица 2: Перезагрузка
слово "Матрица" повторно обрабатывается во втором ereg_replace.

Как сделать, что бы текст, если он уже является ссылкой, не обрабатывался повторно?
Название: Автозамена текста
Отправлено: Mog. от 27 Февраля 2003, 18:00:42
Можно так
$string=ereg_replace(\'Матрица 2: Перезагрузка\',\'Матрица 2: Перезагрузка\',$string);
$string=ereg_replace(\'([^>])Матрица\',\'\\\\1Матрица\',$string);

а можно и так
$string=ereg_replace(\'Матрица 2: Перезагрузка\',\'Матрица 2: Перезагрузка\',$string);
$string=ereg_replace(\'Матрица ([^2])\',\'Матрица \\\\1\',$string);
Название: Автозамена текста
Отправлено: Gorets от 27 Февраля 2003, 18:27:06
мне надо создать универсальную функцию в которую передается тест и слово, которое надо заменить в этом тексте.
но слово, если оно является текстом ссылки(слово), не должно заменяться.
т.е. во фразе: "продолжение фильма Матрица Матрица 2" заменилось бы только первое слово Матрица