istiyorum ki; #yazilar isimli bir div var diyelim.
bu div'in içindeki yazılarda eğer url varsa bunları link'e çevirsin (sadece url kısımlarını) istiyorum. jquery gibi bir sistemle yapmak lazım sanırım ama jquery ile bir türlü yapamadım.
php iel yaptıklarım ise, dediğim gibi her yazıyı div dışına fırlattı ki nedenini hala anlayabilmiş değilim.
örnek metni ve div i paylaşır mısınız?
<div id='sol'>
<li class='ana'>
<ul>
<li><a href='uye-{$kadiSef}'><b>{$uye}</b></a> - <img src='tema/standart/css/resim/time.png' style='float:none; margin-right:5px;'/>{$time} </li>
<li><font>{$icerik}</font></li>
</ul>
</li>
</div>
biraz karmaşık oldu farkındayım.
ama #sol isimli div'in içine while döngüsü ile veritabanından bastırıyorum içerikleri. yani şuan tek bir yazı var ama normalde elbette birden çok olacak.
sol'un içine, her bir veri için bir adet <li class='ana'> ve içindeki veriler bastırılıyor öyle söyleyeyim.
stackoverflow.com
şurda en üstteki iki çözümü bir dene ikincisi galiba ihtiyacın olan.
{$icerik} i yazdırırken o fonksiyonu uygulayarak yazdır. "makeClickableLinks($icerik)" şeklinde.
eregi_replace() is deprecated in
gibi bir hata veriyor ikincisi. birinciyi de deneyeyim.
edit: birinci de herhangi bir sonuç çıkarmadı, hiçbir şey yapmamışım gib iyani.
linkleri sadece "http: //li" şekilde girince linke dönüştürüyor ilki. ikincisi ise php'nin eski versiyonları içinmiş.
şu bende çalışıyor:
function ReplaceURL($text)
{
return preg_replace("/(^|\W)(http:\/\/[\w\.\-\?\/\=\&]+)/siu","$1<a href=\"$2\" target=\"_blank\">" . (strlen('$2') > 18 ? substr('$2', 0, 15).'...' : '$2') . "</a>", $text);
}
aynen kanka bu çalıştı. oh beaaa
peki bunun otomatik http eklemeli versionu var mı bildiğin?
şu adreste şöyle bişey buldum ama denemedim:
css-tricks.com
function txt2link($text){
// force http: on www.
$text = ereg_replace( "www\.", "www.", $text );
// eliminate duplicates after force
$text = ereg_replace( "http://www\.", "www.", $text );
$text = ereg_replace( "http://www\.", "www.", $text );
// The Regular Expression filter
$reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
// Check if there is a url in the text
if(preg_match($reg_exUrl, $text, $url)) {
// make the urls hyper links
$text = preg_replace($reg_exUrl, '<a href="'.$url[0].'" rel="nofollow">'.$url[0].'</a>', $text);
} // if no urls in the text just return the text
return ($text);
}