Url leri link yapma (düzenli ifade)

annttiigs

Profesör
Katılım
7 Şubat 2007
Mesajlar
2,589
Reaksiyon puanı
24
Puanları
218
Günün ortası oldu sanırım algım kapandı. Tam anlayamadım istediğin şeyi. Bir örnekle açıklar mısın ? Açıklarken;

Yazı şu olacak. Ben bunu şuna değiştireceğim gibi orjinal hali ve değiştirilmiş halini yazarsanız daha kolay yardımcı oluruz sanırım.

Araştırmanız gereken şey ise; "string replace with regular expression"


Not : Sanırım dil olarak PHP kullanacaksınız.
 
Katılım
31 Aralık 2007
Mesajlar
17,485
Reaksiyon puanı
188
Puanları
243
Tam kod vermeye uğraşamam ama regex patternini verebilirim.

Şu pattern ile aratıp : /\b\S+\.(com|net|org)\b/gi
Şu pattern ile replace ettirirsen : <a href="http://$&">$&</a>

Aşağıdaki gibi bir yazı :

Yazıdaki sadece bbb.com ifadesinin geçtiği url leri link yapmak istiyorum bunu nasıl yapabilirim.

Şu yazıya dönüşür :

Yazıdaki sadece <a href="http://bbb.com">bbb.com</a> ifadesinin geçtiği url leri link yapmak istiyorum bunu nasıl yapabilirim.

Doğal olarak da HTML'tagı HTML dökümanı içerisinde link gibi görünür. Ben örnekte com, net, org domainleri için yaptım. Artık genişletmesini sen halledersin...
 

cristogi

Asistan
Katılım
9 Nisan 2012
Mesajlar
159
Reaksiyon puanı
0
Puanları
0
Günün ortası oldu sanırım algım kapandı. Tam anlayamadım istediğin şeyi. Bir örnekle açıklar mısın ? Açıklarken;

Yazı şu olacak. Ben bunu şuna değiştireceğim gibi orjinal hali ve değiştirilmiş halini yazarsanız daha kolay yardımcı oluruz sanırım.

Araştırmanız gereken şey ise; "string replace with regular expression"


Not : Sanırım dil olarak PHP kullanacaksınız.

Tam kod vermeye uğraşamam ama regex patternini verebilirim.

Şu pattern ile aratıp : /\b\S+\.(com|net|org)\b/gi
Şu pattern ile replace ettirirsen : <a onclick="_gaq.push(['_trackEvent', 'Outgoing', '$&', '']);" rel="nofollow" href="http://$&">$&</a>

Aşağıdaki gibi bir yazı :

Yazıdaki sadece bbb.com ifadesinin geçtiği url leri link yapmak istiyorum bunu nasıl yapabilirim.

Şu yazıya dönüşür :

Yazıdaki sadece <a onclick="_gaq.push(['_trackEvent', 'Outgoing', 'bbb.com', '']);" rel="nofollow" href="http://bbb.com">bbb.com</a> ifadesinin geçtiği url leri link yapmak istiyorum bunu nasıl yapabilirim.

Doğal olarak da HTML'tagı HTML dökümanı içerisinde link gibi görünür. Ben örnekte com, net, org domainleri için yaptım. Artık genişletmesini sen halledersin...


Sağolun arkadaşlar ama iki gündür süren yoğun uğraşlarımdan sonra sonunda çözdüm, bulduğum düzenli ifade aşağıdadır;

$mesaj = "Yazıdaki sadece bbb.com ifadesinin geçtiği url leri link yapmak istiyorum bunu nasıl yapabilirim. Kaynak: http://www.bbb.com http://www.ccc.com http://www.bbb.com/konu/baslik http://www.eee.com";

$mesaj = preg_replace('@(https?://www.bbb([-\w\.]+)+:)\d+)?(/([\w/_\.%-]*(\?\S+)?)?)?)@', '<a href="$1" target="_blank">$1</a>', $mesaj);
 
Üst