• 12-01-2009, 16:56:56
    #1
    Üyeliği durduruldu
    Belki başka birileride gerek duyarsa yapmak için cebelleşmesin diye yaziyorum
    function str2url($convertStr){
        $search     = array('ç','Ç','ğ','Ğ','ı','İ', 'ö', 'Ö','ş', 'Ş','ü','Ü'); 
        $replace    = array('c','c','g','g','i','i', 'o', 'o','s', 's','u','U');
        $convertStr = str_replace( $search , $replace , $convertStr );
        $convertStr = strtolower( $convertStr );
        $convertStr = preg_replace( '/\s\s+/' , ' ' , $convertStr );
        $convertStr = str_replace(' ' , '-' , $convertStr );
        $convertStr = ereg_replace( '[^a-zA-Z0-9-]' , '' , $convertStr );
        return $convertStr;
    }
    Amaç

    ABC ÇDEFGHIİJKLM...'//NOÖPQRSŞTUÜVWXYZ-0123456789 - abcçdefghıijklmnoöpqrsştvwxyz

    gibi bir kelimeden ingilizce karakter setinde küçük harftlerden oluşan. arada 1 den fazla white space kareketeri varsa bunu teke indiren ve bu boşluklarıda çizgi - işareti ile değiştiren bir fonksiyon oluşturmak

    adım adım bakarsak şayet
    $convertStr = str_replace( $search , $replace , $convertStr );
    kısmı türkçe karakterleri benzer ingilizce karakterleri ile değitiriyor
    $convertStr = strtolower( $convertStr );
    tüm metni küçük harfe çeviriyor
    $convertStr = preg_replace( '/\s\s+/' , ' ' , $convertStr );
    birden fazla geçen whitespaceleri yok ediyor
    $convertStr = str_replace(' ' , '-' , $convertStr );
    // boşluk karakterini tireye çeviriyor
    $convertStr = ereg_replace( '[^a-zA-Z0-9-]' , '' , $convertStr );
    / son işlem olarak küçük harf a-z Büyük harf A-Z ve tire haricindeki tüm karakterleri uçuyor. regular expressionlarda biraz zayıfım son kısımdaki tire ifademden şüpheliyim ama testlerimde henüz problem çıkarmadı

    vatana millete hayırlı olsun
  • 12-01-2009, 17:02:50
    #2
    Eline sağlık, Ğ-g değişimini de eklersen daha güzel olur.
  • 12-01-2009, 17:04:04
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    sağol hocam kütüphaneme ekledim
  • 12-01-2009, 17:18:39
    #4
    Üyeliği durduruldu
    Yuc3L adlı üyeden alıntı: mesajı görüntüle
    Eline sağlık, Ğ-g değişimini de eklersen daha güzel olur.
    Çok teşekkürler ya hiç farketmememiştim kopyala yapıştır esnasında gözden kaçmış
  • 21-01-2009, 23:24:38
    #5
    Merhaba phpbb forumuma seo uygulamak istiyorum ancak adres satırındaki karakterler türkçe çıkıyo. Php konusunda yeterli bilgiye sahip değilim, bu fonksyonu nasıl uygulayabilirim? Ekte seo modla alakalı xsl dosyasını veriyorum. Dosyayı inceleyip nasıl uygulayacağımı açıklarsanız çok sevinirim.
  • 22-01-2009, 07:45:34
    #6
    Üyeliği durduruldu
    uni adlı üyeden alıntı: mesajı görüntüle
    Merhaba phpbb forumuma seo uygulamak istiyorum ancak adres satırındaki karakterler türkçe çıkıyo. Php konusunda yeterli bilgiye sahip değilim, bu fonksyonu nasıl uygulayabilirim? Ekte seo modla alakalı xsl dosyasını veriyorum. Dosyayı inceleyip nasıl uygulayacağımı açıklarsanız çok sevinirim.
    php ögrenerek başlayabilirsiniz Kimse zaten doğduğunda bilmiyor phpyi zamanla ögreniyor
  • 22-01-2009, 08:33:46
    #7
    sdemirkeser adlı üyeden alıntı: mesajı görüntüle
    php ögrenerek başlayabilirsiniz Kimse zaten doğduğunda bilmiyor phpyi zamanla ögreniyor
    //her sey google için
    function trsil($pezxenk) {
    $tr = array('ÅŸ','ÅŸ','ı','İ','ÄŸ','ÄŸ','ü','Ü','ö','Ö','Ç','ç','Å');
    $eng = array('s','S','i','I','g','G','u','U','o','O','C','c','S');
    $pezxenk = str_replace($tr,$eng,$pezxenk);
    $pezxenk = eregi_replace('[^0-9A-Za-z]',"_",$pezxenk);
    $pezxenk = str_replace('__','_',$pezxenk);
    return $pezxenk;
    }

    hocam bunu utf-8 türünden yaptım denedim sorun yok millet faydalansın


    Herkese kolay gelsin
  • 22-01-2009, 10:45:12
    #8
    Üyeliği durduruldu
    reklamci54 adlı üyeden alıntı: mesajı görüntüle
    hocam bunu utf-8 türünden yaptım denedim sorun yok millet faydalansın
    Herkese kolay gelsin
    tümden utf-8 çalışmıyorsanız evet o şekilde yapmanız lazım. Yoksa herşeyiniz utf-8 ise zaten gerek yok
  • 22-01-2009, 14:31:51
    #9
        $convertStr = preg_replace( '/\s\s+/' , ' ' , $convertStr );
    şu metin düzenleme işlemleri hep kafamı karıştırır : /
    bu kısımda
    \s\s+
    tam olarak ne demek istiyor ?
    ayrıca /*/ gibi slash arasına almasaydık direk tırnak arasında '\s\s+' yapsaydık ne değişirdi ? preg_ fonksiyonlarını bende daha önceden kullandım '/*/' veya '#*#' gibi.. ama şimdi merak ettim tam olarak mantıgını.