• 06-04-2009, 17:13:12
    #1
    Üyeliği durduruldu
    php fonskiyonu;
    <?php
    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 );
    
        $find = array('é', 'è', 'ë', 'ê', 'É', 'È', 'Ë', 'Ê');
        $convertStr = str_replace ($find, 'e', $convertStr);
    
        $find = array('í', 'ý', 'ì', 'î', 'ï', 'I', 'Ý', 'Í', 'Ì', 'Î', 'Ï');
        $convertStr = str_replace ($find, 'i', $convertStr);
        
        $find = array('ó', 'ò', 'ô', 'Ó', 'Ò', 'Ô');
        $convertStr = str_replace ($find, 'o', $convertStr);
    
        $find = array('á', 'ä', 'â', 'à', 'â', 'Ä', 'Â', 'Á', 'À', 'Â');
        $convertStr = str_replace ($find, 'a', $convertStr);
    
        $find = array('ú', 'ù', 'û', 'Ú', 'Ù', 'Û');
        $convertStr = str_replace ($find, 'u', $convertStr);
    
        $find = array('þ', 'Þ');
        $convertStr = str_replace ($find, 's', $convertStr);
    
        $find = array('ð', 'Ð');
        $convertStr = str_replace ($find, 'g', $convertStr);
    
    
        $convertStr = strtolower( $convertStr );
        $convertStr = ereg_replace( '[^a-zA-Z0-9[:space:]]' , '' , $convertStr );
        $convertStr = ereg_replace( '[[:space:]]{1,}' , ' ' , $convertStr );    
        $convertStr = str_replace(' ' , '-' , $convertStr );
        return $convertStr;
    }
    ?>
    aynısının tıpkısı javascript hali
    <script language="javascript">
    function str2url(convertStr){
        // rev1. Türkçe olmayan karakterlere göre tekrar düzenleme yapıldı
        convertStr = convertStr.replace(/ç/g, "c");
        convertStr = convertStr.replace(/Ç/g, "c");
        convertStr = convertStr.replace(/ğ/g, "g");
        convertStr = convertStr.replace(/Ğ/g, "g");
        convertStr = convertStr.replace(/ı/g, "i");
        convertStr = convertStr.replace(/İ/g, "i");
        convertStr = convertStr.replace(/ö/g, "o");
        convertStr = convertStr.replace(/Ö/g, "o");
        convertStr = convertStr.replace(/ş/g, "s");
        convertStr = convertStr.replace(/Ş/g, "s");
        convertStr = convertStr.replace(/ü/g, "u");
        convertStr = convertStr.replace(/Ü/g, "u");
        // Türkçe olmayan karakterler
        convertStr = convertStr.replace(/é/g, "e");
        convertStr = convertStr.replace(/è/g, "e");
        convertStr = convertStr.replace(/ë/g, "e");
        convertStr = convertStr.replace(/ê/g, "e");
        convertStr = convertStr.replace(/É/g, "e");
        convertStr = convertStr.replace(/È/g, "e");
        convertStr = convertStr.replace(/Ë/g, "e");
        convertStr = convertStr.replace(/Ê/g, "e");
        convertStr = convertStr.replace(/í/g, "i");
        convertStr = convertStr.replace(/ý/g, "i");
        convertStr = convertStr.replace(/ì/g, "i");
        convertStr = convertStr.replace(/î/g, "i");
        convertStr = convertStr.replace(/ï/g, "i");
        convertStr = convertStr.replace(/I/g, "i");
        convertStr = convertStr.replace(/Ý/g, "i");
        convertStr = convertStr.replace(/Í/g, "i");
        convertStr = convertStr.replace(/Ì/g, "i");
        convertStr = convertStr.replace(/Î/g, "i");
        convertStr = convertStr.replace(/Ï/g, "i");
        convertStr = convertStr.replace(/ó/g, "o");
        convertStr = convertStr.replace(/ò/g, "o");
        convertStr = convertStr.replace(/ô/g, "o");
        convertStr = convertStr.replace(/Ó/g, "o");
        convertStr = convertStr.replace(/Ò/g, "o");
        convertStr = convertStr.replace(/Ô/g, "o");
        convertStr = convertStr.replace(/á/g, "a");
        convertStr = convertStr.replace(/ä/g, "a");
        convertStr = convertStr.replace(/â/g, "a");
        convertStr = convertStr.replace(/à/g, "a");
        convertStr = convertStr.replace(/â/g, "a");
        convertStr = convertStr.replace(/Ä/g, "a");
        convertStr = convertStr.replace(/Â/g, "a");
        convertStr = convertStr.replace(/Á/g, "a");
        convertStr = convertStr.replace(/À/g, "a");
        convertStr = convertStr.replace(/Â/g, "a");
        convertStr = convertStr.replace(/ú/g, "u");
        convertStr = convertStr.replace(/ù/g, "u");
        convertStr = convertStr.replace(/û/g, "u");
        convertStr = convertStr.replace(/Ú/g, "u");
        convertStr = convertStr.replace(/Ù/g, "u");
        convertStr = convertStr.replace(/Û/g, "u");
        convertStr = convertStr.replace(/þ/g, "s");
        convertStr = convertStr.replace(/Þ/g, "s");
        convertStr = convertStr.replace(/ð/g, "g");
        convertStr = convertStr.replace(/Ð/g, "g");
        // Tüm karakterleri küçük harfe çevir
        convertStr = convertStr.toLowerCase();
        // Harf ve rakam ve boşluk haricinde ne varsa temizle
        convertStr = convertStr.replace( /[^a-zA-Z0-9\s]/g , "");
        // birden fazla boşlukları temizle
        convertStr = convertStr.replace(/\s{1,}/g , " ");    
        // boşlukları - yap
        convertStr = convertStr.replace(/\s/g , "-");
        return convertStr;
    }
    </script>
    v1.0002 birden fazla boşluk olduğunda birden fazla - atma problemi giderildi
    - den başka kullanmak isteriginiz karakter varsa
        $convertStr = str_replace(' ' , '-' , $convertStr );
    ve
        convertStr = convertStr.replace(/\s/g , "-");
    kısımları kafanıza göre değiştirebilirsiniz.
  • 06-04-2009, 17:20:50
    #2
    Üyeliği durduruldu
    smarty plugini yapmak için ise;
    plugins dizinine
    modifier.str2url.php
    adında bir dosya oluşturun içeriği ise;
    <?php
    function smarty_modifier_str2url($string)
    {
        return str2url($string);
    }
    ?>
    şeklinde olsun

    daha sonra

    {$kelime|str2url}

    yazarak smarty de kullanabilirsiniz
  • 06-04-2009, 18:07:13
    #3
    hocam buda str2url fonksiyonun gibi çok kullanışlı tebrikler

    yalnız tr karakterleri çevirmişin de ya éâäàåçêëèïîıÄÅÉæÆôöòûù vs gibi karakterler için çalışırmı?

    örnek: Beyoncé Knowles - Vikipedi
  • 06-04-2009, 18:10:48
    #4
    Üyeliği durduruldu
    niphell adlı üyeden alıntı: mesajı görüntüle
    hocam buda str2url fonksiyonun gibi çok kullanışlı tebrikler
    yalnız tr karakterleri çevirmişin de ya éâäàåçêëèïîıÄÅÉæÆôöòûù vs gibi karakterler için çalışırmı?
    örnek: Beyoncé Knowles - Vikipedi
    Olumsuz. Bu harfleride ÇŞĞ gibi karakterleri nasil replace ediyorsam öyle replace etmek lazim.

    mesela é yerine e olmasını istiyorsak ayni şekilde eklemek lazim. Bu saydığın harfleri ingilizce karakter setinde ne yapsak uygundur onu eklersen ona göre editleyelim
  • 06-04-2009, 18:20:47
    #5
    https://www.r10.net/550983-post8.html

    üstad şurda var mesela ama kod kalabalığıda var aynı zamanda bu linkteki fonksiyonda gereksiz işlemlerde var

    bende senin gibi kullanıyordum ama kullanılışlı olmasından ve herkes tarafından kullanılması istediğimden öneride bulunmuştum

    dikkate aldığın için teşekkürler
  • 06-04-2009, 19:09:45
    #6
    Üyeliği durduruldu
    benim merak ettiğim, wordpress in de kendi içinde böyle bir işlemi var. konu başlığını url formatına uygun hale getiriyor. her uygunsuz karakterin karşılığını wp nin içine mi kaydetmişler acaba. hadi biz biliyoruz türkçe karakterleri ama dünyada cins cins o kadar karakterler var ki. ya hepsinin karşılığını bir yerde tutuyorlar ya da bu işi yapmanın başka bir yolu var
  • 07-04-2009, 05:50:52
    #7
    Üyeliği durduruldu
    MC_delta_T adlı üyeden alıntı: mesajı görüntüle
    benim merak ettiğim, wordpress in de kendi içinde böyle bir işlemi var. konu başlığını url formatına uygun hale getiriyor. her uygunsuz karakterin karşılığını wp nin içine mi kaydetmişler acaba. hadi biz biliyoruz türkçe karakterleri ama dünyada cins cins o kadar karakterler var ki. ya hepsinin karşılığını bir yerde tutuyorlar ya da bu işi yapmanın başka bir yolu var
    sanirim tek tek düzenlemişlerdir. Türkçe olmayan karakterler php ve javascript fonksiyonuna eklendi. niphell e teşekkürler
  • 07-04-2009, 10:18:07
    #8
    $convertStr = preg_replace( '/\s{1,}' , ' ' , $convertStr );

    şu tam olarak nedir yani /\s{1,} nasıl bir desen bu. düzenli ifadeler ezberimde yokda =)

    ekstra: ucwords() fonksiyonu baslik ve sef'lerde sürekli kullanırım. tavsiyedir, 2 şekerle tüketiniz : )
  • 07-04-2009, 12:09:21
    #9
    nerden almıştım hatırlamıyorum ama türkçe için

    function reformat ( $tmptitle,$tmpdate ) {
        $returnstr = "";
        $turkcefrom = array("/Ğ/","/Ü/","/Ş/","/İ/","/Ö/","/Ç/","/ğ/","/ü/","/ş/","/ı/","/ö/","/ç/");
        $turkceto   = array("G","U","S","I","O","C","g","u","s","i","o","c");
        //$tmptitle = mb_convert_encoding("$tmptitle","ISO-8859-9");
        // Alfanumerik olmayan karekterleri boşluk yap
        $tmptitle = preg_replace("/[^0-9a-zA-ZÄzÜŞİÖÇğüşıöç]/"," ",$tmptitle);
        // Türkçe harfleri ingilizceye çevir
        $tmptitle = preg_replace($turkcefrom,$turkceto,$tmptitle);
        // Birden fazla olan boşlukları tek boşluk yap
        $tmptitle = preg_replace("/ +/"," ",$tmptitle);
        // Boşukları - işaretine çevir
        $tmptitle = preg_replace("/ /","-",$tmptitle);
        // Tüm beyaz karekterleri sil
        $tmptitle = preg_replace("/\s/","",$tmptitle);
        // Karekterleri küçült
        $tmptitle = strtolower($tmptitle);
        // Başta ve sonda - işareti kaldıysa yoket
        $tmptitle = preg_replace("/^-/","",$tmptitle);
        $tmptitle = preg_replace("/-$/","",$tmptitle);
        // Tarih'i biçimlendir.
        $tmpdate = date("/Y/m/d/",$tmpdate);
        $returnstr = $tmpdate . $tmptitle;
        return $returnstr;
    }