• 04-05-2015, 11:24:01
    #1
    geçen gün r10'da konusu açılmıştı. tartışma ortamı olduğu için yorum yapmamıştım konuya.

    CssValley şu konuda zaten paylaşmış ama bende yazdım boşa gitmesin.

    Hataları olabilir fazla test edemedim.
    PHP 5.4 ve üzeri gerektirir. Ayrıca mb_string kurulu değilse çalışmayacaktır.

    Kullanabileceğiniz metotlar
    1. birlikte
    2. aitlik
    3. yonelme
    4. belirtme
    5. bulunma
    6. ayrilma

    Kullanımı

    $ek = new Ekler('Emre');
    // opsiyonel olarak iki değer alır. (string)isim ve (boolean)tırnak.
    // otomatik tırnak eklenmesini istemiyorsanız false olarak girmelisiniz
    
    echo $ek->belirtme(); // Emre'yi
    echo $ek->isim("Sena")->yonelme(); //Sena'ya
    echo $ek->aitlik(); // Sena'nın
    echo $ek->isim('Ufuk', false)->ayrilma(); // Ufuktan
    indirmek için
    http://ge.tt/1CO8DiF2/v/0

    görüntülemek için
    http://paste.ubuntu.com/10983291/
  • 04-05-2015, 17:24:04
    #2
    Üyeliği durduruldu
    webbartal adlı üyeden alıntı: mesajı görüntüle
    geçen gün r10'da konusu açılmıştı. tartışma ortamı olduğu için yorum yapmamıştım konuya.

    CssValley şu konuda zaten paylaşmış ama bende yazdım boşa gitmesin.

    Hataları olabilir fazla test edemedim.
    PHP 5.4 ve üzeri gerektirir. Ayrıca mb_string kurulu değilse çalışmayacaktır.

    Kullanabileceğiniz metotlar
    1. birlikte
    2. aitlik
    3. yonelme
    4. belirtme
    5. bulunma
    6. ayrilma

    Kullanımı

    $ek = new Ekler('Emre');
    // opsiyonel olarak iki değer alır. (string)isim ve (boolean)tırnak.
    // otomatik tırnak eklenmesini istemiyorsanız false olarak girmelisiniz
    
    echo $ek->belirtme(); // Emre'yi
    echo $ek->isim("Sena")->yonelme(); //Sena'ya
    echo $ek->aitlik(); // Sena'nın
    echo $ek->isim('Ufuk', false)->ayrilma(); // Ufuktan
    indirmek için
    http://ge.tt/1CO8DiF2/v/0

    görüntülemek için
    http://paste.ubuntu.com/10983291/

    Harikasınız hocam işte ben bunu demiştim açtığım ilk konuda, bu işi bilenler olarak toplanıp bunu yapalım diye arama sonuçlarında R10'da çıksın temiz çalışanı...

    Harika iş çıkartmışsınız...
    Elinize Sağlık...

    İzninizle Konuma ekleyebilir miyim sizinkini de link vererek @webbartal; ?
  • 04-05-2015, 17:35:09
    #3
    CssValley adlı üyeden alıntı: mesajı görüntüle
    Harikasınız hocam işte ben bunu demiştim açtığım ilk konuda, bu işi bilenler olarak toplanım bunu yapalım diye aram sonuçlarında R10 da çıksın temiz çalışanı...

    Harika iş çıkartmışsınız...
    Elinize Sağlık...

    İzninizle Konuma ekleyebilir miyim sizinkini de link vererek ?
    teşekkürler güzel yorumunuz için

    ekleyebilirsiniz tabii ki. ne kadar çok paylaşılırsa o kadar iyi
  • 04-05-2015, 17:38:03
    #4
    Üyeliği durduruldu
    webbartal adlı üyeden alıntı: mesajı görüntüle
    teşekkürler güzel yorumunuz için

    ekleyebilirsiniz tabii ki. ne kadar çok paylaşılırsa o kadar iyi
    Teşekkürler
    Elinize sağlık tekrar tarzınız harika yalnız...
    İlk konum bunun içindi tarzları görmek...
  • 04-05-2015, 20:12:22
    #5
    Lisansı nedir bu dosyanın? GPL mi, MIT mi, RPL mi?
  • 04-05-2015, 20:59:35
    #6
    Alexis adlı üyeden alıntı: mesajı görüntüle
    Lisansı nedir bu dosyanın? GPL mi, MIT mi, RPL mi?
    hocam açıkcası lisanslardan pek anlamıyorum. zaten profesyonel bir yazılımcı da değilim.

    ben yazdım demediğiniz sürece istediğiniz şekilde kullanabilirsiniz.
  • 04-05-2015, 21:22:39
    #7
    ylv
    Üyeliği durduruldu
    webbartal adlı üyeden alıntı: mesajı görüntüle
    geçen gün r10'da konusu açılmıştı. tartışma ortamı olduğu için yorum yapmamıştım konuya.

    CssValley şu konuda zaten paylaşmış ama bende yazdım boşa gitmesin.

    Hataları olabilir fazla test edemedim.
    PHP 5.4 ve üzeri gerektirir. Ayrıca mb_string kurulu değilse çalışmayacaktır.

    Kullanabileceğiniz metotlar
    1. birlikte
    2. aitlik
    3. yonelme
    4. belirtme
    5. bulunma
    6. ayrilma

    Kullanımı

    $ek = new Ekler('Emre');
    // opsiyonel olarak iki değer alır. (string)isim ve (boolean)tırnak.
    // otomatik tırnak eklenmesini istemiyorsanız false olarak girmelisiniz
    
    echo $ek->belirtme(); // Emre'yi
    echo $ek->isim("Sena")->yonelme(); //Sena'ya
    echo $ek->aitlik(); // Sena'nın
    echo $ek->isim('Ufuk', false)->ayrilma(); // Ufuktan
    indirmek için
    http://ge.tt/1CO8DiF2/v/0

    görüntülemek için
    http://paste.ubuntu.com/10983291/
    iznin olursa kullandığın algoritmayı kullanıp bire bir kodlarını mysql için fonksiyona çevireceğim, konuya ekleyeceğim.

    şöyle bir kullanım gerçekleşecek misal

    sql > SELECT EK('Emre','birlikte')

    veya

    sql > SELECT EK(username,'ayrilma') FROM users
  • 04-05-2015, 21:26:27
    #8
    ylv adlı üyeden alıntı: mesajı görüntüle
    iznin olursa kullandığın algoritmayı kullanıp bire bir kodlarını mysql için fonksiyona çevireceğim, konuya ekleyeceğim.

    şöyle bir kullanım gerçekleşecek misal

    sql > SELECT EK('Emre','birlikte')

    veya

    sql > SELECT EK(username,'ayrilma') FROM users
    tabii ki. çok memnun olurum.
  • 05-05-2015, 00:10:57
    #9
    ylv
    Üyeliği durduruldu
    hızlı hızlı yazdım tam kontrol şansım olmadı, test ettiğim kadarıyla sorun yok.

    CREATE FUNCTION EK(
    	metin TEXT CHARSET UTF8,
    	tip ENUM('birlikte','aitlik','yonelme','belirtme','bulunma','ayrilma')
    )
      RETURNS TEXT CHARACTER SET UTF8
      
    DETERMINISTIC
    BEGIN
    
    	DECLARE Sep VARCHAR(3) CHARSET UTF8 DEFAULT "'";
    	DECLARE kalin_sesli CHAR(8) CHARSET UTF8 DEFAULT 'a,o,ı,u';
    	DECLARE ince_sesli CHAR(8) CHARSET UTF8 DEFAULT 'e,i,ü,ö';
    	DECLARE bharf CHAR(15) CHARSET UTF8 DEFAULT 'ç,f,h,k,s,ş,t,p';
    	DECLARE sesli CHAR(17) CHARSET UTF8 DEFAULT CONCAT_WS(',',kalin_sesli,ince_sesli);
    	DECLARE son_harf CHAR(1) CHARSET UTF8 DEFAULT RIGHT(RTRIM(metin),1);
    	DECLARE son_sesli VARCHAR(1) CHARSET UTF8 DEFAULT '';
    	DECLARE outp TEXT CHARSET UTF8 DEFAULT '';
    	
    	SET @lowerm = LOWER(REPLACE(metin,'I','ı'));
    	SET @mlen = LENGTH(@lowerm);
    	
    	WHILE @mlen>0 DO
    		IF (FIND_IN_SET(BINARY SUBSTRING(@lowerm FROM @mlen FOR 1),sesli)<>0) THEN
    			SET son_sesli = SUBSTRING(@lowerm FROM @mlen FOR 1);
    			SET @mlen := 0;
    		ELSE
    			SET @mlen := @mlen-1;
    		END IF;
    	END WHILE;
    	
    	IF son_sesli='' THEN
    		RETURN metin;
    	END IF;
    	
    	IF tip IN('birlikte','yonelme') THEN 
    	
    		IF FIND_IN_SET(BINARY son_sesli,kalin_sesli) THEN 
    			SET @harf = 'a'; 
    		ELSE 
    			SET @harf = 'e';
    		END IF;
    		
    		SET @kharf = '';
    		IF FIND_IN_SET(son_harf,sesli) THEN 
    			SET @kharf = 'y'; 
    		END IF;
    		
    		SET outp = CONCAT(@kharf,IF(tip='birlikte','l',''),@harf);
    		
    	ELSEIF tip IN('aitlik','belirtme') THEN
    
    		SET @kharf = '';
    		IF FIND_IN_SET(BINARY son_harf,sesli) THEN 
    			SET @kharf = IF(tip='belirtme','y','n'); 
    		END IF;
    		
    		SET @h1 = 'ieaıüöuo';
    		SET @h2 = 'iiııüüuu';
    		SET @h = SUBSTRING(@h2 FROM LOCATE(son_sesli,@h1) FOR 1);
    		SET outp = CONCAT(@kharf,@h,IF(tip='belirtme','','n'));
    	
    	ELSEIF tip IN('bulunma','ayrilma') THEN
    		
    		SET @bharf = 'd';
    		IF FIND_IN_SET(BINARY son_harf,bharf) THEN 
    			SET @bharf = 't'; 
    		END IF;
    		
    		SET @harf = 'e';
    		IF FIND_IN_SET(BINARY son_sesli,kalin_sesli) THEN 
    			SET @harf = 'a'; 
    		END IF;
    		
    		SET outp = CONCAT(@bharf,@harf,IF(tip='ayrilma','n',''));
    	
    	ELSE
    		RETURN 'bilinmeyen ek';
    	END IF;
    
      	RETURN CONCAT(metin,Sep,outp);
    END;
    sql > SELECT EK("ayşe fatma","birlikte"),EK("ayşe fatma","aitlik"),EK("ayşe fatma","yonelme"),EK("ayşe fatma","belirtme"),EK("ayşe fatma","bulunma"),EK("ayşe fatma","ayrilma")

    Showing rows 0 - 0 ( 1 total, Query took 0.0026 sec)

    EK("ayşe fatma","birlikte")
    EK("ayşe fatma","aitlik")
    EK("ayşe fatma","yonelme")
    EK("ayşe fatma","belirtme")
    EK("ayşe fatma","bulunma")
    EK("ayşe fatma","ayrilma")
    ayşe fatma'yla
    ayşe fatma'nın
    ayşe fatma'ya
    ayşe fatma'yı
    ayşe fatma'da
    ayşe fatma'dan

    --R10.NET; Flood Engellendi -->-> Yeni yazılan 05-05-2015 mesaj 00:10:57 -->-> Daha önceki 04-05-2015 mesaj 22:32:47 --

    kullandığım fonk. dan ötürü kaynaklanan case sensitivity hatası varmış düzelttim ve test ettim.

    elimde kişiler tablosu olmadığından iller tablosunda testi gerçekleştirdim.

    ek konusuyla yapacaklarım bu kadar herkese iyi çalışmalar.

    https://www.imageupload.co.uk/images...05/04/zzzz.jpg