Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

metin içindeki linkleri yakalayıp kısaltma

arkadaşlar metin içindeki linklerin uzun olanlarını ... koyarak kısaltmak istiyorum fakat linkleri nasıl yakalayıp nasıl kısaltacağım bilmiyorum. yardımcı olabilir misiniz?
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • Hasan adlı üyenin fotoğrafı
    11 yıl önce yazılmış
    63 cevap - 0 soru
    function url_to_link($text, $str_length = 10) {
    		return  preg_replace(
    		     array(
    		       '/(?(?=<a[^>]*>.+<\/a>)
    		             (?:<a[^>]*>.+<\/a>)
    		             |
    		             ([^="\']?)((?:https?|ftp|bf2|):\/\/[^<> \n\r]+)
    		         )/iex',
    		       '/<a([^>]*)target="?[^"\']+"?/i',
    		       '/<a([^>]+)>/i',
    		       '/(^|\s)(www.[^<> \n\r]+)/iex',
    		       '/(([_A-Za-z0-9-]+)(\\.[_A-Za-z0-9-]+)*@([A-Za-z0-9-]+)
    		       (\\.[A-Za-z0-9-]+)*)/iex'
    		       ),
    		     array(
    		       "stripslashes((strlen('\\2')>0?'\\1<a href=\"\\2\">'.substr('\\2',0,$str_length).'...</a>\\3':'\\0'))",
    		       '<a\\1',
    		       '<a\\1 target="_blank">',
    		       "stripslashes((strlen('\\2')>0?'\\1<a href=\"http://\\2\" target=\"_blank\">'.substr('\\2',0,$str_length).'...</a>\\3':'\\0'))",
    		       "stripslashes((strlen('\\2')>0?'<a href=\"mailto:\\0\">\\0</a>':'\\0'))"
    		       ),
    		       $text
    	   	);
    	}
    



    Kullanım :
     url_to_link("Google'ın yeni doodle'ını gördünüz mü? www.google.com",10);


    Çıktısı :
    Google'ın yeni doodle'ını gördünüz mü? www.google...
    • bensedat18 adlı üyenin fotoğrafı bensedat18
      eywallah hocam çok teşekkür ediyorum.
      bir de bu üç nokta olayını misal sadece 20 karakterden uzun linkler için nasıl koyabiliriz hocam?
      11 yıl önce yazılmış
    • Hasan adlı üyenin fotoğrafı Hasan
      function url_to_link($text, $str_length = 10) {
      	return  preg_replace(
      		 array(
      		   '/(?(?=<a[^>]*>.+<\/a>)
      				 (?:<a[^>]*>.+<\/a>)
      				 |
      				 ([^="\']?)((?:https?|ftp|bf2|):\/\/[^<> \n\r]+)
      			 )/iex',
      		   '/<a([^>]*)target="?[^"\']+"?/i',
      		   '/<a([^>]+)>/i',
      		   '/(^|\s)(www.[^<> \n\r]+)/iex',
      		   '/(([_A-Za-z0-9-]+)(\\.[_A-Za-z0-9-]+)*@([A-Za-z0-9-]+)
      		   (\\.[A-Za-z0-9-]+)*)/iex'
      		   ),
      		 array(
      		   "stripslashes((strlen('\\2')>0?'\\1<a href=\"\\2\">'.((strlen('\\2') > 20) ? substr('\\2',0,$str_length).'...' : '\\2').'</a>\\3':'\\0'))",
      		   '<a\\1',
      		   '<a\\1 target="_blank">',
      		   "stripslashes((strlen('\\2')>0?'\\1<a href=\"http://\\2\" target=\"_blank\">'. ((strlen('\\2') > 20) ? substr('\\2',0,$str_length).'...' : '\\2') .'</a>\\3':'\\0')) ",
      		   "stripslashes((strlen('\\2')>0?'<a href=\"mailto:\\0\">\\0</a>':'\\0'))"
      		   ),
      		   $text
      	);
      }
      
      
      echo url_to_link("Google'ın yeni doodle'ını gördünüz mü? http://www.google.com",15); // http://www.goog...
      
      echo url_to_link("Google'ın yeni doodle'ını gördünüz mü? http://google.com",15); // http://google.com
      
      



      Commentlerde çıktılarını yazdım.
      11 yıl önce yazılmış
    • bensedat18 adlı üyenin fotoğrafı bensedat18
      teşekkür ederim hocam :).
      11 yıl önce yazılmış
    • Hasan adlı üyenin fotoğrafı Hasan
      Rica ederim ;)
      11 yıl önce yazılmış

Cevaplar

Hiç cevap bulunamadı.