|
|
|
| Товарищи умельцы!!!
Есть ли способ на лету в тексте вставлять ссылки по определенным правилам?
Задача такая:
1. Есть некий список Разделов, где хранится описание, скажем, Товаров.
2. И Есть куча Текстов, кол-во которых регулярно меняется, как по содержанию, так и по количеству.
В Текстах очень часто встречаются Названия Товаров, которые хотелось бы преобразовывать в ссылки на соответсвующий Раздел с описанием, прямо на лету.
Другими словами - надо проанализировать текст, понять, встречается ли в нем слово из "ТРЕХ БУКВ", и заменить оное на нужную ссылку. Для этого, как я понимаю, нужна отдельная таблица, где храняться списки шаблонов для поиска и назначенные им соответствующие разделы.
Что скажете, браться програмеры? Кто-нибудь делал подобное??? | |
|
|
|
|
|
|
|
для: ZIlog
(18.02.2008 в 18:51)
| | наверное можно как-то так
<?
$txt="Для этого, как я понимаю, нужна отдельная таблица,
где храняться списки шаблонов для поиска и назначенные
им соответствующие разделы";
$words1 = array('для', 'где', 'что');
$words2 = array('как', 'чем', 'раз');
function ptr(&$a) {
$a = '#\b(' . $a . ')\b#ie';
}
array_walk($words1, 'ptr');
array_walk($words2, 'ptr');
$txt = preg_replace($words1,
"'<a href=\"?r=1#' . urlencode(strtolower('\$1')) . '\">\$1</a>'",
$txt);
$txt = preg_replace($words2,
"'<a href=\"?r=2#' . urlencode(strtolower('\$1')) . '\">\$1</a>'",
$txt);
echo $txt;
?>
| но с strtolower и с русскими словами, или создавать массивы со строками замены, тогда можно один массив поиска и один замены | |
|
|
|
|
|
|
|
для: ZIlog
(18.02.2008 в 18:51)
| | Да, можно перехватить весь вывод при помощи функций управления выводом и осуществить замену в тексте. Пример можно найти в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=3442. | |
|
|
|