• 23-06-2015, 22:25:48
    #1
    Çok tuhaf ve işin içinden çıkamadığım bir durumla karşı karşıyayım..

    önce kodlar..
    function seflink($string)
    {
    $find = array('Ç', 'Ş', 'Ğ', 'Ü', 'İ', 'Ö', 'ç', 'ş', 'ğ', 'ü', 'ö', 'ı', '+', '#');
    $replace = array('c', 's', 'g', 'u', 'i', 'o', 'c', 's', 'g', 'u', 'o', 'i', 'plus', 'sharp');
    $string = strtolower(str_replace($find, $replace, $string));
    $string = preg_replace("@[^A-Za-z0-9\-_\.\+]@i", ' ', $string);
    $string = trim(preg_replace('/\s+/', ' ', $string));
    $string = str_replace(' ', '-', $string);
    return $string;
    }
    
    //haberbaslıklar dizi değişkenini başka bir siteden çekiyorum curl ile
    
    foreach($haberbasliklar as $haberbaslik) {
    $haberseo=seflink($haberbaslik);
    echo "başlık      " . $haberbaslik;
    echo "seolu hali " . $haberseo;
    }
    Alınan çıktı..
    başlık Dere taştı bir kadın sel sularına kapılarak kayboldu!
    seolu hali dere-ta-sharp351-t-sharp305-bir-kad-sharp305-n-sel-sular-sharp305-na-kap-sharp305-larak-kayboldu

    neden böyle şarplı marplı çeviriyor ben sadece türkçe karakterleri ingilizce karakter yapsın istiyorum o kadar.. yani istediğim sonuç

    dere-tasti-bir-kadin-sel-sularina-kapilarak-kayboldu

    Nerde hata var aynı fonksiyon başka temiz bir sayfada düzgün çalışıyor fakat temamın içine koyduğumda böyle çıktı alıyorum.. acaba çalıştırdığım sayfanın utf 8 kodlamasında falan mı hata var

    daha önce bu tarz sorunlarla karşılaşan oldu mu ??
  • 23-06-2015, 22:32:27
    #2
    function turkceyap($url) {  
     $url = trim($url);
        $url = strtolower($url);
        $find = array('<b>', '</b>');
        $url = str_replace ($find, '', $url);
        $url = preg_replace('/<(\/{0,1})img(.*?)(\/{0,1})\>/', 'image', $url);
        $find = array(' ', '"', '&', '&', '\r\n', '\n', '/', '\\', '+', '<', '>');
        $url = str_replace ($find, '-', $url);
        $find = array('é', 'è', 'ë', 'ê', 'É', 'È', 'Ë', 'Ê');
        $url = str_replace ($find, 'e', $url);
        $find = array('í','ì', 'î', 'ï', 'I', 'ı', 'İ', 'Í', 'Ì', 'Î', 'Ï');
        $url = str_replace ($find, 'i', $url);
        $find = array('ó', 'ö', 'Ö', 'ò', 'ô', 'Ó', 'Ò', 'Ô');
        $url = str_replace ($find, 'o', $url);
        $find = array('á', 'ä', 'â', 'à', 'â', 'Ä', 'Â', 'Á', 'À', 'Â');
        $url = str_replace ($find, 'a', $url);
        $find = array('ú', 'ü', 'Ü', 'ù', 'û', 'Ú', 'Ù', 'Û');
        $url = str_replace ($find, 'u', $url);
        $find = array('ç', 'Ç');
        $url = str_replace ($find, 'c', $url);
        $find = array('ş', 'Ş');
        $url = str_replace ($find, 's', $url);
        $find = array('ğ', 'Ğ');
        $url = str_replace ($find, 'g', $url);   
        $find = array('Y');
        $url = str_replace ($find, 'y', $url);  
        $find = array('/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/');
        $repl = array('', '-', '');
        $url = preg_replace ($find, $repl, $url);
        $url = str_replace ('--', '-', $url);
        return $url;
    } // bitti
    bunu kullan
  • 23-06-2015, 22:39:35
    #3
    ~Aykut adlı üyeden alıntı: mesajı görüntüle
    function turkceyap($url) {  
     $url = trim($url);
        $url = strtolower($url);
        $find = array('<b>', '</b>');
        $url = str_replace ($find, '', $url);
        $url = preg_replace('/<(\/{0,1})img(.*?)(\/{0,1})\>/', 'image', $url);
        $find = array(' ', '"', '&', '&', '\r\n', '\n', '/', '\\', '+', '<', '>');
        $url = str_replace ($find, '-', $url);
        $find = array('é', 'è', 'ë', 'ê', 'É', 'È', 'Ë', 'Ê');
        $url = str_replace ($find, 'e', $url);
        $find = array('í','ì', 'î', 'ï', 'I', 'ı', 'İ', 'Í', 'Ì', 'Î', 'Ï');
        $url = str_replace ($find, 'i', $url);
        $find = array('ó', 'ö', 'Ö', 'ò', 'ô', 'Ó', 'Ò', 'Ô');
        $url = str_replace ($find, 'o', $url);
        $find = array('á', 'ä', 'â', 'à', 'â', 'Ä', 'Â', 'Á', 'À', 'Â');
        $url = str_replace ($find, 'a', $url);
        $find = array('ú', 'ü', 'Ü', 'ù', 'û', 'Ú', 'Ù', 'Û');
        $url = str_replace ($find, 'u', $url);
        $find = array('ç', 'Ç');
        $url = str_replace ($find, 'c', $url);
        $find = array('ş', 'Ş');
        $url = str_replace ($find, 's', $url);
        $find = array('ğ', 'Ğ');
        $url = str_replace ($find, 'g', $url);   
        $find = array('Y');
        $url = str_replace ($find, 'y', $url);  
        $find = array('/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/');
        $repl = array('', '-', '');
        $url = preg_replace ($find, $repl, $url);
        $url = str_replace ('--', '-', $url);
        return $url;
    } // bitti
    bunu kullan
    Kullandım hocam ama bu seferde şöyle bir çıktı alıyorum..
    Fonksiyondan değilde dil kodlarıyla ilgili bir sıkıntım var sanırım çünkü aynı fonksiyonu temiz bir php dosyasında yaptığımda çalışıyor..

    Bülent Arınç hakkında suç duyurusu!
    b-uumllent-ar-305n-ccedil-hakk-305nda-su-ccedil-duyurusu
  • 24-06-2015, 08:54:15
    #4
    function modrewrite($s){
        $tr = array('ş','Ş','ı','İ','ğ','Ğ','ü','Ü','ö','Ö','ç','Ç');
        $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('/&amp;amp;amp;amp;amp;amp;amp;amp;.+?;/', '-', $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;
    }