Автор Тема: Автозамена текста  (Прочитано 2614 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Gorets

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 5
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Автозамена текста
« : 27 Февраля 2003, 16:53:46 »
Есть текст в котором встречаются фразы "Матрица" и "Матрица 2: Перезагрузка"
Этот текст обрабатывается следующим образом:
$string=ereg_replace(\'Матрица 2: Перезагрузка\',\'<a href=index.php?idfilm=896>Матрица 2: Перезагрузка</a>\',$string);
$string=ereg_replace(\'Матрица\',\'<a href=index.php?idfilm=159>Матрица</a>\',$string);

Мне надо получить вот такой результат:
<a href=index.php?idfilm=159>Матрица</a>
<a href=index.php?idfilm=896>Матрица 2: Перезагрузка</a>

а получаю вот что:
<a href=index.php?idfilm=896><a href=index.php?idfilm=159>Матрица</a> 2: Перезагрузка</a>
слово "Матрица" повторно обрабатывается во втором ereg_replace.

Как сделать, что бы текст, если он уже является ссылкой, не обрабатывался повторно?

Оффлайн Mog.

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 828
  • +0/-0
  • 0
    • Просмотр профиля
Автозамена текста
« Ответ #1 : 27 Февраля 2003, 18:00:42 »
Можно так
$string=ereg_replace(\'Матрица 2: Перезагрузка\',\'<a href=index.php?idfilm=896>Матрица 2: Перезагрузка</a>\',$string);
$string=ereg_replace(\'([^>])Матрица\',\'\\\\1<a href=index.php?idfilm=159>Матрица</a>\',$string);


а можно и так
$string=ereg_replace(\'Матрица 2: Перезагрузка\',\'<a href=index.php?idfilm=896>Матрица 2: Перезагрузка</a>\',$string);
$string=ereg_replace(\'Матрица ([^2])\',\'<a href=index.php?idfilm=159>Матрица</a> \\\\1\',$string);
Все болезни от нервов, только сифилис от удовольствия

Оффлайн Gorets

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 5
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Автозамена текста
« Ответ #2 : 27 Февраля 2003, 18:27:06 »
мне надо создать универсальную функцию в которую передается тест и слово, которое надо заменить в этом тексте.
но слово, если оно является текстом ссылки(слово), не должно заменяться.
т.е. во фразе: "продолжение фильма Матрица Матрица 2" заменилось бы только первое слово Матрица
« Последнее редактирование: 27 Февраля 2003, 18:34:27 от Gorets »

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28