• 23-08-2014, 16:05:15
    #1
    Arkadaşlar aşağıdaki gibi verilerim var.
    Yapmak istediğim ise şu ;
    milliyet sitesine ait olan linkleri silmek ve diğer linkleri ise tıklanabilir şekilde kalmasını sağlamak ( osym sadece örnek ) sonuçtada veriyi tam metin olarak geri almak temizlenmiş şekilde tıkandım kaldım

    $veriler    =  '<div><a title="" href="http://www.osym.gov.tr/" target="_blank" class="tag">ÖSMY TIKLA</a> Uzun süre yeni ofis arayan Kurtlar Vadisinin Polar Alemdarı Necati Şaşmaz, sonunda <a title="" href="http://www.milliyet.com.tr/camlica/" target="_blank" class="tag">Çamlıca</a>da istediği gibi bir bina buldu ve ofisini <a title="" href="http://www.milliyet.com.tr/uskudar/" target="_blank" class="tag">Üsküdar</a>a taşıdı. Kardeşinin binayı tahliye etmesinin ardından Raci Şaşmaz, bir emlakçıyla anlaştı ve yıllarca Pana Filmin proje toplantılarına, partilerine ve stüdyo çalışmalarına ev sahipliği yapan binayı kiraya vermek için harekete geçti. TL bazında kiraya verilecek olan binanın bir <a title="" href="http://saglik.milliyet.com.tr/" target="_blank" class="tag">sağlık</a> merkezine dönüştürülmesi gündemde... 11 yıl omuz omuza Kurtlar Vadisini çektikten sonra şimdi kanlı bıçaklı olan Şaşmaz kardeşler, son olarak haziran ayının sonunda babaannelerinin cenazesinde mecburen bir araya gelmiş ancak birbirlerinin yüzlerine bile bakmamıştı.&nbsp;</div>';
    
    
    
    function temizle_link($gelen){
    	$sonuc = $gelen;
    	$regexp = "<a\s[^>]*href=([\"\']??)([^\" >]*?)\\1[^>]*>(.*)<\/a>";
    	if(preg_match_all("/$regexp/siU", $gelen, $suzulecek, PREG_SET_ORDER)) {
    		 
    		foreach($suzulecek as $veri) {			 
    			$site_bul = site_bul ($veri[2]); // site bul fonksiyonu sonucu milliyet geliyor
    			if($site_bul=="milliyet"){
    				$sonuc .= strip_tags($veri[0]);
    			}else{
    				$sonuc .=  $veri[0];
    			}			
    		}		
    	}
    	return $sonuc;
    }
  • 23-08-2014, 23:46:39
    #2
    XGENC adlı üyeden alıntı: mesajı görüntüle
    Arkadaşlar aşağıdaki gibi verilerim var.
    Yapmak istediğim ise şu ;
    milliyet sitesine ait olan linkleri silmek ve diğer linkleri ise tıklanabilir şekilde kalmasını sağlamak ( osym sadece örnek ) sonuçtada veriyi tam metin olarak geri almak temizlenmiş şekilde tıkandım kaldım

    $veriler    =  '<div><a title="" href="http://www.osym.gov.tr/" target="_blank" class="tag">ÖSMY TIKLA</a> Uzun süre yeni ofis arayan Kurtlar Vadisinin Polar Alemdarı Necati Şaşmaz, sonunda <a title="" href="http://www.milliyet.com.tr/camlica/" target="_blank" class="tag">Çamlıca</a>da istediği gibi bir bina buldu ve ofisini <a title="" href="http://www.milliyet.com.tr/uskudar/" target="_blank" class="tag">Üsküdar</a>a taşıdı. Kardeşinin binayı tahliye etmesinin ardından Raci Şaşmaz, bir emlakçıyla anlaştı ve yıllarca Pana Filmin proje toplantılarına, partilerine ve stüdyo çalışmalarına ev sahipliği yapan binayı kiraya vermek için harekete geçti. TL bazında kiraya verilecek olan binanın bir <a title="" href="http://saglik.milliyet.com.tr/" target="_blank" class="tag">sağlık</a> merkezine dönüştürülmesi gündemde... 11 yıl omuz omuza Kurtlar Vadisini çektikten sonra şimdi kanlı bıçaklı olan Şaşmaz kardeşler, son olarak haziran ayının sonunda babaannelerinin cenazesinde mecburen bir araya gelmiş ancak birbirlerinin yüzlerine bile bakmamıştı.&nbsp;</div>';
    
    
    
    function temizle_link($gelen){
    	$sonuc = $gelen;
    	$regexp = "<a\s[^>]*href=([\"\']??)([^\" >]*?)\\1[^>]*>(.*)<\/a>";
    	if(preg_match_all("/$regexp/siU", $gelen, $suzulecek, PREG_SET_ORDER)) {
    		 
    		foreach($suzulecek as $veri) {			 
    			$site_bul = site_bul ($veri[2]); // site bul fonksiyonu sonucu milliyet geliyor
    			if($site_bul=="milliyet"){
    				$sonuc .= strip_tags($veri[0]);
    			}else{
    				$sonuc .=  $veri[0];
    			}			
    		}		
    	}
    	return $sonuc;
    }
    hocam biraz düzenlemeyle istediğiniz hale getirebilirsiniz.

    function temizle($text)
    {
    	$pattern = '/<a title="" href="(http:\/\/([a-z]+).milliyet.com.tr\/(.*))+(\/|)" target="_blank" class="tag">(.*)<\/a>/siU';
    	echo preg_replace($pattern,'$5',$text);
    }