В дополнение к последнему предложению Робса для перебора всех игроков / статей, я бы посоветовал вам загрузить все имена игроков / статей и столбец идентификаторов один раз при запуске приложения, чтобы сделать его быстрым.
В зависимости от количества статей об игроках вы можете просто применить грубую силу Replace
к своему текстовому контенту:
Предварительная загрузка всех имен игроков и идентификаторов статей при запуске приложения
Global.asa
<script language="vbscript" runat="server">
Sub Application_OnStart
'... code for database query omitted ..'
Dim playerarticles(objPlayer.RecordCount, 1) '- init array to RecordCount -'
Dim i
i = 0
While Not objPlayer.EOF
playerarticles(i, 0) = objPlayer("PlayerName")
playerarticles(i, 1) = objPlayer("PlayerID")
objPlayer.MoveNext
i = i + 1
Wend
Application("articles") = playerarticles
End Sub
</script>
пример использования на странице
<%
Option Explicit
Dim parsedtext
Dim i
parsedtext = "Chelsea are making a change now as goalscorer Nicolas Anelka is replaced by in-form Florent Malouda who can do no wrong lately."
For i = 0 To UBound(Application("articles"))
parsedtext = Replace(parsedtext, Application("articles")(i,0), "<a href=""player.asp?ID=" & Application("articles")(i,1) & """>" & Application("articles")(i,0) & "</a>")
Next
Response.Write(parsedtext)
%>
Если вы извлекаете свой текстовый контент из базы данных и имеете много статей об игроках, вам следует рассмотреть возможность подготовки контента в автономном режиме путем (ночного) обновления базы данных.
долгосрочный просмотр
Как вы планируете обрабатывать обновления базы данных статей об игроках? Просто анализ вашего текста на вставке оставит вас в конечном итоге статьи, которые не ссылаются на игроков, добавленных в базу данных позже.
Как упоминалось выше, лучшим решением будет какая-то работа, которая сканирует ваши статьи на предмет имен игроков, которые еще не связаны между собой. Ваше веб-приложение не будет загромождено кодом, связанным с содержанием вашего контента.