Php ile bir metin içerisinde geçen url’leri algılayıp otomatik olarak link veren bir fonksiyon. Kendim yazmadım arayıp buldum ve böyle bir fonksiyona ihtiyaç duyan arkadaşlar olabileceğini düşünüp paylaşmak istedim. Umarım işinizi görür.
Fonksiyon içeriği:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | function otolink($text) { $text = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)', '<a href="\\1" target="_blank" rel="noopener noreferrer">\\1</a>', $text); $text = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)', '\\1\\2', $text); $text = eregi_replace('([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})', '<a href="mailto:\\1">\\1</a>', $text); $regexp = "<a\s[^>]*href=("??)([^" >]*?)\\1[^>]*>(.*)<\/a>"; if(preg_match_all("/$regexp/siU", $text, $matches)) { # $matches[2] = array of link addresses # $matches[3] = array of link text - including HTML code foreach ($matches[3] as $key=>$val) { if ($val[50]) { $text = str_replace(">" . $val . "<", ">" . substr($val,0,50) . "...<", $text); } } } return $text; } |
Fonksiyon kullanımı gayet basit:
1 2 3 | $metin = "Metin dosyanız veya yazı http://www.site.com"; $metin = otolink($metin); echo "$metin"; |
merhaba bu kodları tam olarak nereye ekleyeceğiz bunun hakkında bilgi vermemişsiniz.
eyv. kodlar çok iyi çalışyor.
Çok güzel bir kod işime yarada teşekkürler.artık haber metinlerini linklendirebilicem :D
On numara beş yıldız !