Untuk mengubah teks tagar menjadi link, bisa menggunakan preg_replace:
function hashtagtolink($str) {
return preg_replace('/(?<![&;])#([-\w]+)/',
'<a href="/tag/$1">#$1</a>', $str);
}
Keterangan:
* Pola setelah # adalah ([-\w]+) atau sama dengan ([-A-Za-z0-9_]+).
Jika ingin membatasi panjang tagar, bisa ubah + menjadi misal {1,20}. Jika melebihi 20 karakter, hanya 20 karakter pertama yang akan diubah menjadi link.
* Pola sebelum # adalah (?<![&;]).
?<! adalah negative lookbehind, diikuti dengan & (ampersand) dan ; (semicolon).
Menggunakan karakter & dan ; agar string dengan character reference di HTML seperti ' &#039 tidak akan ikut diubah menjadi link tagar.
Untuk membuat teks mention menjadi link, tinggal ubah # menjadi @ dan sesuaikan link.
#PHP#regex ###PHP #regex
Baca juga: Cara Membuat Sistem Hashtag dan Mention di PHP tanpa regex