Є така собі проблемка. Аналітичний сайт. Статті. Глосарій. Є потреба виділяти слова з глосарію в статтях у вигляді посилань на той же глосарій. Тобто, виводиться стаття, є слово, що міститься в глосарію - воно перетворюється на посилання.
Так от, щодо реалізації. Добре, якщо глосарій маленький. Тоді при виводі скрипт прокрутить саттю по всіх ключових словах, автоматично виділивши потрібні, вірніше, перетворивши їх на посилання. А якщо глосарій розростеться? Прокручувати заміну слів статті одноразово, перед публікуванням - тоді не враховується поповнення глосарію.
Може хтось підкаже якийсь вихід, що і враховуватиме поповнення глосарію, і не з`їдатиме ресурси сервера та не гальмуватиме вивід статей?
по крону з потрібною частотою (наскільки швидко розростається глосарій, я не знаю). Або - складніше, але інтелігентніше - організуй нотифікації. Коли хтось поповнює глосарій, хай скрипт кидає в якусь спецтабличку запис-команду на перекомпіляцію статей. По крону (більш-менш часто) працює інший скрипт, який, як тільки бачить нову нотифікацію, перекомпілює статті і стирає цей запис. Віддалено схожим чином працює підписка на оголошення на autoua.biz.
нужно будет только несколько скриптов - 1. первичное выделение 2. обработка при добавлении в глоссарий (палюбу старые статьи нужно будет шерстить) 3. обработка при добавлении статьи
пункты 1 и 3 вроде похожи. можт, можно обойтись один скриптом.
АХТУНГ!!! не бойся проверять каждое слово статьи на вхождение в глоссарий! только сделай так - грузишь глоссарий в ХЕШ и тогда 1. разбиваешь статью на слова 2. пословно проверяешь, есть ли в хеше ключ, совпадающий с твоим словом 3. и т.д.
В ответ на: Так от, щодо реалізації. Добре, якщо глосарій маленький. Тоді при виводі скрипт прокрутить саттю по всіх ключових словах, автоматично виділивши потрібні, вірніше, перетворивши їх на посилання. А якщо глосарій розростеться?
Правильно. Так не робиться. Вивід статті треба максимально прискорити.
В ответ на: Прокручувати заміну слів статті одноразово, перед публікуванням - тоді не враховується поповнення глосарію.
Не розумію, чому цей варіант не підходить. Саме так і треба робити, тільки з доповненням - стосовно поповнення словника.
Отже, 1) при підготовці статті - автоматично проганяти скриптом по існуючому словнику; 2) при внесенні змін (доповнень) до словника - повторити 1) для всіх статей.
Якщо словник змінюється часто, винести прогонку 2) в окремий процес під управлінням редактора - хай сам визначає необхідну частоту прогонки.
Крон підходить тоді, коли якщо точність і оперативність не постраждають (не потрібні). Якщо сервер слабкуватий, то пункт 2) можна виконувати по крону наприклад двічі на добу - того буде досить.
Можна зробити багато чого, але без пункту 2) не обійтись .
Отже, 1) при підготовці статті - автоматично проганяти скриптом по існуючому словнику; 2) при внесенні змін (доповнень) до словника - повторити 1) для всіх статей.
Тільки одна поправка по п.2 - проганяти старі статті не для всього глоссарію, а тільки для його змін - це буде значно швидче.
cron + diff + awk|perl|python|тощо = все що завгодно