Si scusami, ma sono scarso con le spiegazioni
Allora il codice fa questo, prende il testo passato come argomento, lo parsa inserendo dentro l'array $matches tutte occorrenze che trova con le regex, in questo caso va alla ricerca di parole precedute da #, mettiamo ad esempio che io abbia scritto #mariorossi. A questo punto controlla con il for se la parola in questione, mariorossi, è un nome presente nel db, in cui si vede che prendo nome e cognome con un'altro metodo, tolgo gli spazi e metto tutto minuscolo. Nel caso in cui il nome è presente nel db allora mette dentro $replacements[$j] il link da sostituire alla parola, questo avviene nell'ultimo for.
Il problema è questo, fa tutto alla grande, solo che mi da problemi quando va a sostituire le parole con gli eventuali link, cioè non tutti i link vengono sostituiti, alcuni si e alcuni no. Da premettere anche il fatto che mando delle notifiche nel caso in cui si viene taggati, e le notifiche arrivano, solo che non sostituisce bene i link, sono giorni che ma non trovo il problema!