У меня есть MySQL таблица "people" как часть веб-сайта, например:
| people_id | firstname | lastname |
-----------------------------------------
| 1 | John | Lennon |
| 2 | Paul | McCartney |
| 3 | George | Harrison |
| 4 | Ringo | Starr |
| . | . | . |
В моей таблице около 2000 строк.
У меня также есть раздел "новости" на веб-сайте. Часто эти новости содержат ссылки на «людей», например,
Джон Леннон и Пол Маккартни написали
некоторые из самых популярных песен в
история рок-музыки.
Возможно ли (или разумно / целесообразно) автоматически проанализировать каждый элемент новостей, чтобы найти «людей» в базе данных, а затем превратить их в ссылки. Так, например, приведенный выше текст будет преобразован в это (или что-то функционально эквивалентное):
<a href="/people/1>John Lennon</a> and <a href="/people/2">Paul McCartney</a> wrote some of the most popular songs in the history of rock music.
Каков наилучший способ сделать это? Я сделал несколько неудачных попыток сделать это с помощью регулярных выражений в php, но я думаю, что это не лучший подход. Я не знаю много о javascript (и его фреймворках), но я был бы рад использовать это, если это имеет смысл.
Это не является существенной функцией веб-сайта (но я считаю, что это было бы хорошим дополнением), поэтому я предпочел бы опустить такую функцию, а не резко увеличивать время загрузки страницы.
EDIT
Я пропустил некоторые детали в первоначальном вопросе, чтобы уменьшить длину.
Фактически это веб-сайт футбольного клуба - все «люди» являются членами веб-сайта и могут входить в систему, добавлять и редактировать новости (например, отчеты о матчах), на которых они часто ссылаются на других "людей". Так что не только я добавляю новости - их могут добавлять (около) 2000 других пользователей.
Хотя членство ограничено в том смысле, что люди должны быть одобрены до присоединения, система должна быть в состоянии справиться со сложностями, такими как люди с необычными именами, и есть несколько случаев, когда более одного человека с одним именем .
Я реализовал своего рода решение, в котором я использую собственный код для разметки имен людей (например, [p = 1] Джон Леннон [/ p]), но я обнаружил, что в 2000 году пользователи сайта, только немногие используют это.
Что бы это ни стоило, веб-сайт www.ouafc.com, а пример новостной ленты - www.ouafc.com/news/312.
.