Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: ГУРУ!!! Есть ли способ на лету в тексте вставлять ссылки по определенным правилам?
 
 автор: ZIlog   (18.02.2008 в 18:51)   письмо автору
 
 

Товарищи умельцы!!!

Есть ли способ на лету в тексте вставлять ссылки по определенным правилам?
Задача такая:
1. Есть некий список Разделов, где хранится описание, скажем, Товаров.
2. И Есть куча Текстов, кол-во которых регулярно меняется, как по содержанию, так и по количеству.

В Текстах очень часто встречаются Названия Товаров, которые хотелось бы преобразовывать в ссылки на соответсвующий Раздел с описанием, прямо на лету.

Другими словами - надо проанализировать текст, понять, встречается ли в нем слово из "ТРЕХ БУКВ", и заменить оное на нужную ссылку. Для этого, как я понимаю, нужна отдельная таблица, где храняться списки шаблонов для поиска и назначенные им соответствующие разделы.

Что скажете, браться програмеры? Кто-нибудь делал подобное???

   
 
 автор: EXP   (18.02.2008 в 19:44)   письмо автору
 
   для: 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 и с русскими словами, или создавать массивы со строками замены, тогда можно один массив поиска и один замены

   
 
 автор: cheops   (19.02.2008 в 11:32)   письмо автору
 
   для: ZIlog   (18.02.2008 в 18:51)
 

Да, можно перехватить весь вывод при помощи функций управления выводом и осуществить замену в тексте. Пример можно найти в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=3442.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования