• 13-09-2014, 06:33:08
    #1
    arkadaşlar merhaba yapmaya çalıştığım ama bir türlü beceremedim

    $result = preg_replace('/<a(.*?)href=\"(.*?)\"(.*?)>(.*?)<\/a>/', "\\4", $text);

    bu fonksiyonla tüm linkler temizleniyor fakat benim yapmaya çalıştığım sadece belli bir sitenin linklerini silmek diğerlerine dokunmamak örneğin;

    $text= "<a href="http://www.benimsitem.com">benimsitem<\/a> , <a href="http://www.baskasite.com">baskasite<\/a>;
    $text içinde iki tane link var istediğim benimsitem.com site linkini silmesin fakat baskasite.com linkini silsin
  • 13-09-2014, 10:52:15
    #2
    hocam baskasite.com silinsin derken. bu silinecek site belli mi? yoksa sadece benimsitem.com dışındaki bütün linkler mi silinecek? birde silinecek derken sadece linkini mi kaldıracaksın yoksa link verilen stringi tamamen mi sileceksiniz ?

    function temizle($text)
    {
    	$pattern = '/<a href="(http:\/\/([a-z]+).baskasite.com\/(.*))+(\/|)">(.*)<\/a>/siU';
    	echo preg_replace($pattern,'$5',$text);
    }
    bu fonksiyon text içindeki verilen sitelere ait linkleri kaldırır. yani <a href="site.com">site</a> şeklindeki text site şekline döner.

    iyi çalışmalar
  • 13-09-2014, 13:51:43
    #3
    sehzadem adlı üyeden alıntı: mesajı görüntüle
    hocam baskasite.com silinsin derken. bu silinecek site belli mi? yoksa sadece benimsitem.com dışındaki bütün linkler mi silinecek? birde silinecek derken sadece linkini mi kaldıracaksın yoksa link verilen stringi tamamen mi sileceksiniz ?

    function temizle($text)
    {
    	$pattern = '/<a href="(http:\/\/([a-z]+).baskasite.com\/(.*))+(\/|)">(.*)<\/a>/siU';
    	echo preg_replace($pattern,'$5',$text);
    }
    bu fonksiyon text içindeki verilen sitelere ait linkleri kaldırır. yani <a href="site.com">site</a> şeklindeki text site şekline döner.

    iyi çalışmalar

    Hocam Allah razı olsun. tam istediğim bir kod oluşturmuşsun. Gayet güzel çalışıyor. tekrardan teşekkür ederim.
  • 13-09-2014, 20:35:13
    #4
    sehzadem adlı üyeden alıntı: mesajı görüntüle
    hocam baskasite.com silinsin derken. bu silinecek site belli mi? yoksa sadece benimsitem.com dışındaki bütün linkler mi silinecek? birde silinecek derken sadece linkini mi kaldıracaksın yoksa link verilen stringi tamamen mi sileceksiniz ?

    function temizle($text)
    {
    	$pattern = '/<a href="(http:\/\/([a-z]+).baskasite.com\/(.*))+(\/|)">(.*)<\/a>/siU';
    	echo preg_replace($pattern,'$5',$text);
    }
    bu fonksiyon text içindeki verilen sitelere ait linkleri kaldırır. yani <a href="site.com">site</a> şeklindeki text site şekline döner.

    iyi çalışmalar


    hocam link içinde title ile target tagları olduğunda çalışmıyor örneğin
    <a title="title" href="http://baskasite.com" target="_blank">baskasite</a>
    rica etsem yardımcı olabilir misiniz?
  • 13-09-2014, 21:14:52
    #5
    Kimlik doğrulama veya yönetimden onay bekliyor.
    aslan002 adlı üyeden alıntı: mesajı görüntüle
    hocam link içinde title ile target tagları olduğunda çalışmıyor örneğin
    <a title="title" href="http://baskasite.com" target="_blank">baskasite</a>
    rica etsem yardımcı olabilir misiniz?
    Aşağıdaki fonksiyon ile'de istediğiniz şekilde temizlik yapabilirsiniz.

    function temizle($text){
    	$gelen = array("Temizlemek İstediğiniz Taglar","Linkler","V.s");
    	$degisen = array("","","");
    	$veri = str_replace($gelen,$degisen,$text);
    	return $veri;
    }
  • 13-09-2014, 21:20:52
    #6
    rikato adlı üyeden alıntı: mesajı görüntüle
    Aşağıdaki fonksiyon ile'de istediğiniz şekilde temizlik yapabilirsiniz.

    function temizle($text){
    	$gelen = array("Temizlemek İstediğiniz Taglar","Linkler","V.s");
    	$degisen = array("","","");
    	$veri = str_replace($gelen,$degisen,$text);
    	return $veri;
    }
    hocam ilginiz için teşekkürler bu fonksiyonu biliyorum fakat işimi görmüyor. sehzadem arkadaşın yaptığı kodlarda biraz değişiklik yapılması gerekiyor.
  • 13-09-2014, 22:41:49
    #7
    aslan002 adlı üyeden alıntı: mesajı görüntüle
    hocam link içinde title ile target tagları olduğunda çalışmıyor örneğin
    <a title="title" href="http://baskasite.com" target="_blank">baskasite</a>
    rica etsem yardımcı olabilir misiniz?
    function temizle($text)
    {
       $pattern = '/<a title="title" href="(http:\/\/([a-z]+).baskasite.com\/(.*))+(\/|)" target="_blank">(.*)<\/a>/siU';
       echo preg_replace($pattern,'$5',$text);
    }
    hocam bu şekilde değiştirin. eğer title ve target etiketlerinde bu şekilde bir düzen varsa yukarıdaki kod çalışır. yok düzen yoksa ona farklı şartlar düşünmemiz lazım
  • 13-09-2014, 22:45:11
    #8
    sehzadem adlı üyeden alıntı: mesajı görüntüle
    function temizle($text)
    {
       $pattern = '/<a title="title" href="(http:\/\/([a-z]+).baskasite.com\/(.*))+(\/|)" target="_blank">(.*)<\/a>/siU';
       echo preg_replace($pattern,'$5',$text);
    }
    hocam bu şekilde değiştirin. eğer title ve target etiketlerinde bu şekilde bir düzen varsa yukarıdaki kod çalışır. yok düzen yoksa ona farklı şartlar düşünmemiz lazım
    bu http://www.the-art-of-web.com/php/parse-links/ site yardımıyla sorunu çözdüm.

     $pattern = "/<a\s[^>]*href=(\"??)(http:\/\/(baskasite.com)[^\" >]*?)\\1[^>]*>(.*)<\/a>/siU";
    title ve taglarda düzen yoktu hocam. yardımcı olan arkadaşlara teşekkür ediyorum.