• 07-08-2013, 02:40:59
    #1
    merhaba.
    elimde bir liste var, şu şekildedir.
    abacı
    abacılık, -ğı
    abadi
    aba güreşi
    abajur
    abajurcu
    abajurculuk, -ğu
    xlsx ve txt formatında alabilirim bunları.
    istediğim şudur;
    bu listedekileri veritabanına kaydedeceğim.
    işleme soktuğumda veritabanına şu şekil gelmesini istiyorum.

    abacı
    abacılık
    abacılığı
    abadi
    aba güreşi
    abajur
    abajurcu
    abajurculuğu
    $kelime = "abacılık, -ğı"

    yani " , " görürse
    $a = explode(",", $kelime) sql->$a[1] //kelimenin ek almamışını kaydettik
    , 2. kez işleme sokacak bunu ve bu sefer, son harfi atacak, virgülden sonra gelen " - " dan sonraki karakter ile bütünleyecek.

    nasıl yapabilirim ? mantığı kuramadım..
  • 07-08-2013, 03:39:09
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Ek olarak, sesi yumuşatması da gerekiyor.
    Abajurculuk
    Abajurculuğu
  • 07-08-2013, 03:57:11
    #3
    ata350 adlı üyeden alıntı: mesajı görüntüle
    Ek olarak, sesi yumuşatması da gerekiyor.
    Abajurculuk
    Abajurculuğu
    son harfi atıp ek olanı ekleyince öyle oluyor zaten. olmayanları da editleyeceğim zaten
  • 07-08-2013, 04:13:25
    #4
    bLoo adlı üyeden alıntı: mesajı görüntüle
    son harfi atıp ek olanı ekleyince öyle oluyor zaten. olmayanları da editleyeceğim zaten
    Pekala, o zaman kod şöyledir hocam.

    <?php
    
    $file = @file("dosya.txt"); 
    for ($i = 0; $i < count($file); $i++) { 
        $satir = $file[$i];
    	$bol = explode(",",$satir);
    	if($bol[1] != "" ) {
    	$uzunluk = strlen($bol[0]);
    	$sonuatilmis = substr($bol[0], 0, $uzunluk-1);
    	$ikincisi = $bol[1];
    	$ikincisi = str_replace(" ","",$ikincisi);
    	$ikincisi = str_replace("-","",$ikincisi);
    	$satir = $sonuatilmis.$ikincisi;
    	}
    	echo $satir."<br>";
    }  
    
    ?>
    Benim dosya.txt :

    Alıntı
    abacı
    abacılık, -ğı
    abadi
    aba güreşi
    abajur
    abajurcu
    abajurculuk, -ğu
    Benim aldığım çıktı :

    Alıntı
    abacı
    abacılığı
    abadi
    aba güreşi
    abajur
    abajurcu
    abajurculuğu
    Kolay gelsin
  • 07-08-2013, 04:14:42
    #5
    Üyeliği durduruldu
    sırayla uygula
    öncelikle explode ile parçalayacaksın
    explode ile $a değişkenine atadığın dizinin 0. elemanı kelime 1. elemanıda ekidir
    1. elemanının boş olup olmadığını kontrol et
    boş değil ise 0. elemanın karakter sayısını al
    karakter sayısını aldıktan sonra sonuncu karakteri atabilirsin
    daha sonrada ekleyebilirsin.
  • 09-08-2013, 01:59:25
    #6
    function indexOtele(&$data,$otele){
    		$toplam = count($data);
    		$temp = $data;
    		$kelime = explode(',', $data[$otele]);
    		$temp[$otele] = trim($kelime[0]);
    		
    		$index = ($otele + 2);
    		
    		for ($i=$index; $i <= $toplam; $i++) { 
    			$temp[$i] = $data[$i - 1];
    		}
    		
    		$temp[$otele + 1] = str_replace(array(", -","kğ"), array("","ğ"), $data[$otele]);
    		$data = $temp;
    	}

    	$data = file("filename.txt");
    	$toplam = count($data);
    	
    	for ($i = 0; $i < $toplam; $i++) {
    		if(strpos($data[$i], ",") !== false){
    			indexOtele($data,$i);
    			$toplam++;
    		}
    	}
    Normaldeki veri
    abacı
    abacılık, -ğı
    abadi
    aba güreşi
    abajur
    abajurcu
    abajurculuk, -ğu
    Çıkan veri
    Array
    (
        [0] => abacı
        [1] => abacılık
        [2] => abacılığı
        [3] => abadi
        [4] => aba güreşi
        [5] => abajur
        [6] => abajurcu
        [7] => abajurculuk
        [8] => abajurculuğu
    )
  • 09-08-2013, 02:32:54
    #7
    Kimlik doğrulama veya yönetimden onay bekliyor.
    $file = file('kelime.txt');
    $satir = count($file);
    for($i=0; $i < $satir; $i++){
    	if(strpos($file[$i], ',') !== false){
    		$dizi[] = preg_replace('/\,.*/si', '', $file[$i]);
    		$dizi[] = str_replace('k, -ğ', 'ğ', $file[$i]);
    	}else{
    		$dizi[] = $file[$i];
    	}
    }
    print_r($dizi);