• 01-01-2017, 01:58:13
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba yapmak istediğim bir TEXT içerisindeki bütün virgülleri saymak, ve çok güzel PHP nin bunun için harika bir fonksiyonu da mevcut: substr_count($text, ',');

    Buraya kadar herşey süper yannız yapmak istediğim asıl konu ise, örneğin text içerisinde 20 adet virgül var ben ise her 5 virgül sonrasında bul değiştir yapmak istiyorum.

    Yani bütün virgüller değiştirilmeyecek, sadece 5. virgül, sonra 10. virgül ve 15. virgül ve 20. virgül de bul ve değiştir yapacak, str_replace() diğer virgüller ise olduğu gibi kalacak.

    Bunun için nasıl bir yol izleyebilirim ?
  • 01-01-2017, 03:26:23
    #2
    bunun için yardımcı bir fonksiyon yok gibi hocam explode(',', $text) ile parçalara ayırıp foreach döngüsüne sokup orada bir şeyler yapabilirsiniz.
  • 01-01-2017, 04:14:24
    #3
    hocam çözdüm galiba

    $text = 'Lorem Ipsum, is simply dummy text of, the printing and typesetting, industry. Lorem Ipsum, has been the industry, standard dummy, text ever since the 1500s, when an, unknown printer, took a galley of type and scrambled, it to make, a type specimen book.';
    
    $search = ',';
    
    $offset = 0;
    $allpos = array();
    while(($pos = strpos($text, $search, $offset)) !== FALSE){
        $offset = $pos + 1;
        $allpos[] = $pos;
    }
    
    
    if(count($allpos)>0){
    	foreach($allpos as $k => $v){
    		$k++;
    		if($k % 5 == 0 && $k != 0){
    			$text = substr_replace($text, '[,]', $v, strlen($search));
    		}
    	}
    }
    
    echo $text;
  • 01-01-2017, 04:36:37
    #4
    codeofali ve Daryl_Dixon ikinizede ayrı ayrı teşekkürler.

    codeofali aklımda yazıyı parselere ayrılıp for döngüsü içinde birşeyler yapmak vardı hatta bir ara aklıma çift stunlu (5 stunlu) tablo oluşturma mantığı geldi benzer bir şekilde istediğim işlemi yapmak için uğraşacaktım ki, Daryl_Dixon' un paylaştığı kodlama ciddi ciddi istediğim işi yapıyor, sağ olun. Benzer sorunu olup cevap arayanlar için Daryl_Dixon'un paylaştığı kodu kullanabilirsiniz.
  • 20-09-2018, 16:38:11
    #5
    Daryl_Dixon adlı üyeden alıntı: mesajı görüntüle
    hocam çözdüm galiba

    $text = 'Lorem Ipsum, is simply dummy text of, the printing and typesetting, industry. Lorem Ipsum, has been the industry, standard dummy, text ever since the 1500s, when an, unknown printer, took a galley of type and scrambled, it to make, a type specimen book.';
    
    $search = ',';
    
    $offset = 0;
    $allpos = array();
    while(($pos = strpos($text, $search, $offset)) !== FALSE){
        $offset = $pos + 1;
        $allpos[] = $pos;
    }
    
    
    if(count($allpos)>0){
        foreach($allpos as $k => $v){
            $k++;
            if($k % 5 == 0 && $k != 0){
                $text = substr_replace($text, '[,]', $v, strlen($search));
            }
        }
    }
    
    echo $text;
    Dostum peki bu kodu her 5, den sonra değilde sadece 5. ci virgülden sonra bir defa istediğimiz kelimeyi nasıl ekleriz