• 17-12-2012, 12:12:26
    #1
    function turkceyap($deger) {
    $turkce=array("ı","ş","?", "?", "y", "(", ")", "‘", "ü", "Ü", "ö", "Ö", "ç", "Ç", " ", "/", "*", "?", "?", "?", "y", "?", "?", "Y", "ö", "Ö", "Ç", "ç", "ü", "Ü", "&#231", "&#305", "&#287", "&#246", "&#351", "&#252", "&#199", "&#304", "&#208", "&#214", "&#350", "&#220");
    $duzgun=array("i","s","s", "S", "y", "", "", "", "u", "U", "o", "O", "c", "C", "-", "-", "-", "", "s", "S", "y", "g", "G", "Y", "o", "O", "C", "c", "u", "U", "c", "i", "g", "o", "s", "u", "c", "i", "g", "o", "s", "u");
    $deger=str_replace($turkce,$duzgun,$deger);
    $deger = preg_replace("@[^A-Za-z0-9-_]+@i","",$deger);
    return $deger;
    }
    bu sekilde türkçe karakterleri kaldırıyorum ve sef link yapıyorum. sıkıntım şu,

    $baslik = 'r10.net - php'

    bu başlığı "r10-net---php" olarak cıkarıyor.

    eğer birden fazla --- var ise tek - haline gelmesini sityorum.

    yani çıktı "r10-net-php" olmalı
  • 17-12-2012, 13:08:11
    #2
    function turkceyap($deger) { 
    $turkce=array("ı","ş","?", "?", "y", "(", ")", "‘", "ü", "Ü", "ö", "Ö", "ç", "Ç", " ", "/", "*", "?", "?", "?", "y", "?", "?", "Y", "ö", "Ö", "Ç", "ç", "ü", "Ü", "&#231", "&#305", "&#287", "&#246", "&#351", "&#252", "&#199", "&#304", "&#208", "&#214", "&#350", "&#220"); 
    $duzgun=array("i","s","s", "S", "y", "", "", "", "u", "U", "o", "O", "c", "C", "-", "-", "-", "", "s", "S", "y", "g", "G", "Y", "o", "O", "C", "c", "u", "U", "c", "i", "g", "o", "s", "u", "c", "i", "g", "o", "s", "u"); 
    $deger=str_replace($turkce,$duzgun,$deger); 
    $deger = preg_replace("@[^A-Za-z0-9-_]+@i","",$deger);
    $deger = str_replace('---','-',$deger); 
    return $deger; 
    }
    dener misin
  • 17-12-2012, 13:18:47
    #3
    function turkceyap($deger) { 
    $turkce=array("ı","ş","?", "?", "y", "(", ")", "‘", "ü", "Ü", "ö", "Ö", "ç", "Ç", " ", "/", "*", "?", "?", "?", "y", "?", "?", "Y", "ö", "Ö", "Ç", "ç", "ü", "Ü", "ç", "ı", "ğ", "ö", "ş", "ü", "Ç", "İ", "Ð", "Ö", "Ş", "Ü"); 
    $duzgun=array("i","s","s", "S", "y", "", "", "", "u", "U", "o", "O", "c", "C", "-", "-", "-", "", "s", "S", "y", "g", "G", "Y", "o", "O", "C", "c", "u", "U", "c", "i", "g", "o", "s", "u", "c", "i", "g", "o", "s", "u"); 
    $deger=str_replace($turkce,$duzgun,$deger); 
    $deger = preg_replace("@[^A-Za-z0-9-_]+@i","",$deger); 
    $deger = preg_replace("#([^-$]{2,})#","-",$deger); 
    return $deger; 
    }
    şeklinde dener misiniz?
  • 17-12-2012, 13:19:09
    #4
    $deger = str_replace('---','-',$deger);
    (-) işaretlerinin artmasına karşılık arkadaşın verdiği bu kodu şu şekilde yaparsanız işiniz görülecektir.
    $deger = str_replace(array('-----', '----', '---', '--'),'-',$deger);
  • 17-12-2012, 13:34:41
    #5
    ~Aykut adlı üyeden alıntı: mesajı görüntüle
    function turkceyap($deger) {
    $turkce=array("ı","ş","?", "?", "y", "(", ")", "‘", "ü", "Ü", "ö", "Ö", "ç", "Ç", " ", "/", "*", "?", "?", "?", "y", "?", "?", "Y", "ö", "Ö", "Ç", "ç", "ü", "Ü", "ç", "ı", "ğ", "ö", "ş", "ü", "Ç", "İ", "Ð", "Ö", "Ş", "Ü");
    $duzgun=array("i","s","s", "S", "y", "", "", "", "u", "U", "o", "O", "c", "C", "-", "-", "-", "", "s", "S", "y", "g", "G", "Y", "o", "O", "C", "c", "u", "U", "c", "i", "g", "o", "s", "u", "c", "i", "g", "o", "s", "u");
    $deger=str_replace($turkce,$duzgun,$deger);
    $deger = preg_replace("@[^A-Za-z0-9-_]+@i","",$deger);
    return $deger;
    }
    bu sekilde türkçe karakterleri kaldırıyorum ve sef link yapıyorum. sıkıntım şu,

    $baslik = 'r10.net - php'

    bu başlığı "r10-net---php" olarak cıkarıyor.

    eğer birden fazla --- var ise tek - haline gelmesini sityorum.

    yani çıktı "r10-net-php" olmalı
    function seo_link($s){
        $tr = array('ş','Ş','ı','İ','ğ','Ğ','ü','Ü','ö','Ö','ç','Ç');
        // Türkçe karakterlerin çevirlecegi karakterler
        $en = array('s','s','i','i','g','g','u','u','o','o','c','c');
        $s = str_replace($tr,$en,$s);
        $s = strtolower($s);
        $s = preg_replace('/&.+?;/', '-', $s);
        $s = preg_replace('/[^%a-z0-9 _-]/', '-', $s);
        $s = preg_replace('/\s+/', '-', $s);
        $s = preg_replace('|-+|', '-', $s);
        $s = str_replace("--","-",$s);
        $s = trim($s, '-');
        return $s;
    }
    Bunu kullan. Sıkıntı yaşamazsın.
  • 17-12-2012, 17:54:42
    #6
    teşekkürler