• 07-09-2013, 00:53:14
    #1
    Merhaba arkadaşlar,
    replace ile başlıklarıdaki kelimelerin arasına virgül koyarak etiket yapıyorum ancak,

    "3,metrelik,4,timsah,5" etiketlerin minimum uzunluğu 2 karakter bu yüzden tek karakterleri (örnek verdiğim etiketteki 3,4 ve 5 durumlarındaki gibi) silmek istiyorum.

    Bunu nasıl yapabilirim? Teşekkürler
  • 07-09-2013, 01:08:25
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    <?php
    	$string = '3 metrelik 4 timsah 5';
    	$string = explode(' ', $string);
    	foreach($string as $key => $value){
    		if(strlen($value) < 2){
    			unset($string[$key]);
    		}
    	}
    ?>
    $string değişkenin içinden kalan etiketleri ekleyebilirsiniz...
  • 09-09-2013, 11:29:38
    #3
    adursun adlı üyeden alıntı: mesajı görüntüle
    <?php
    	$string = '3 metrelik 4 timsah 5';
    	$string = explode(' ', $string);
    	foreach($string as $key => $value){
    		if(strlen($value) < 2){
    			unset($string[$key]);
    		}
    	}
    ?>
    $string değişkenin içinden kalan etiketleri ekleyebilirsiniz...
    Hocam dediğinizi yaptım ancak bi değişiklik olmadı, kodumda bi hatamı var?

    function etiket($veri)
    {
    $veri = trim($veri);
        $string = explode(' ', $veri); 
        foreach($string as $key => $value){ 
            if(strlen($value) <= 1){ 
                unset($string[$key]); 
            } 
        } 
    
    $veri = str_ireplace('haber365, haber365.com, haber, haberler, ', '', $veri);
    $veri = str_ireplace(' ', ',', $veri);
    $veri = str_ireplace('	', '', $veri);
    $veri = str_ireplace('.', '', $veri);
    $veri = str_ireplace(',,', ',', $veri);
    $veri = strtolower($veri);
    
    return $veri;
    }
  • 09-09-2013, 15:22:30
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    $metin = 'haber365, haber365.com, haber, haberler, 3,metrelik,4,timsah,5';
    
    echo preg_replace("/(\s|^|\W)([a-zA-Z0-9]){1}(\s|$|\W)/si",'$1', $metin);
    böyle dene bakalım istediğin gibi olmuşmu
  • 09-09-2013, 18:25:19
    #6
    guzelindir adlı üyeden alıntı: mesajı görüntüle
    $metin = 'haber365, haber365.com, haber, haberler, 3,metrelik,4,timsah,5';
    
    echo preg_replace("/(\s|^|\W)([a-zA-Z0-9]){1}(\s|$|\W)/si",'$1', $metin);
    böyle dene bakalım istediğin gibi olmuşmu
    Hocam sayılarda işe yarıyor sadece
    kod:
    <?php
    $metin = 'haber365, haber365.com,a,b,),haber, haberler,3,metrelik,4,timsah,5'; 
    
    echo preg_replace("/(\s|^|\W)([a-zA-Z0-9]){1}(\s|$|\W)/si",'$1', $metin);  
    
    ?>
    Çıktı:
    haber365, haber365.com,b,),haber, haberler,metrelik,timsah,
  • 09-09-2013, 19:42:05
    #7
    $tags = "3,15,a,b,c,hayvan,kus,bocek,metrelik,4,timsah,5";
    $tags = explode(',',$tags);
    
    $cikti = NULL;
    
    foreach($tags as $tag){
    $tag = trim($tag);
    if(strlen($tag) != 1){
    $cikti .= $tag.',';
    }
    }
    $cikti = rtrim($cikti,',');
    echo $cikti;
    
    /*
    Çıktı:
    15,hayvan,kus,bocek,metrelik,timsah
    */
    Döngüye sokmak falan biraz uzun gibi gözüksede en temiz yol gibi geldi bana.
  • 11-09-2013, 19:59:36
    #8
    smddzcy adlı üyeden alıntı: mesajı görüntüle
    $tags = "3,15,a,b,c,hayvan,kus,bocek,metrelik,4,timsah,5";
    $tags = explode(',',$tags);
    
    $cikti = NULL;
    
    foreach($tags as $tag){
    $tag = trim($tag);
    if(strlen($tag) != 1){
    $cikti .= $tag.',';
    }
    }
    $cikti = rtrim($cikti,',');
    echo $cikti;
    
    /*
    Çıktı:
    15,hayvan,kus,bocek,metrelik,timsah
    */
    Döngüye sokmak falan biraz uzun gibi gözüksede en temiz yol gibi geldi bana. +rep butonuna tıklatabilirsin
    Teşekkürler hocam çalıştı
  • 11-09-2013, 21:49:14
    #9
    quaick adlı üyeden alıntı: mesajı görüntüle
    Teşekkürler hocam çalıştı
    (+r***p istemek yasak diye biliyorum hocam verdim yinede siz silin )
    Yok öyle bir şey +rep'de neymiş Rica ederim