• 29-10-2009, 12:28:11
    #1
    Merhaba arkadaşlar,

    Php bir sistemde seo işlemi yaptım.Bir çok karekteri çevirdim .Fakat bazı karekterler inatla çevrilmiyor.

    Kullandığım fonksiyon aşağıdadır :

    function temizle($gelen_metin) {  
    $yea1=array(",","s","ç","g","g","i","i","I","s","ö","ü","."," ","'","/","C","I","B","W","T","R","O","E","U","D","Z","M","Y","N","V","A","N","H","P","L","K","I","I","F","Ç","G","I","S","Ö","Ü","__","?","!","%","`",); 
    $yea2=array("_","s","c","g","g","i","i","i","s","o","u","","-","-","","c","i","b","w","t","r","o","e","u","d","z","m","y","n","v","a","n","h","p","l","k","i","i","f","c","g","i","s","o","u","_","","","-","_",); 
     return str_replace($yea1,$yea2,$gelen_metin);  
    }
    KONU DATABASE 'DE ŞU ŞEKİLDE :
    FULL DİZEL MEGAN

    Linki ise şu şekilde geliyor :

    full-dİzel-megan-100651.html

    Ş,Ğ gibi karekterler çevrilmiyor.

    Sizce sorun ne olabilir ?

    Benim aklıma databaseden gelirken phpde bir fonksiyonla verideki karekterleri küçük harfe çevirmek oldu.daha sonra fonksiyona tabi tutmak geldi ama bu konularda fikirlerinizi almak istedim.

    Teşekkürler
  • 29-10-2009, 13:07:05
    #2
    Üyeliği durduruldu
    karakter dizisinde sanirim bahsettiginiz karakterler yok. iki kere baktim ama örnek büyük İ karakterini göremedim
  • 29-10-2009, 13:34:06
    #3
    Alıntı
    $yea1=array(",","s","ç","g","g","i","i","I","s","ö ","ü","."," ","'","/","C","I","B","W","T","R","O","E","U","D","Z","M", "Y","N","V","A","N","H","P","L","K","I","I","F","Ç ","G","I","S","Ö","Ü","__","?","!","%","`","İ","Ş" ,"Ğ","ı","ş","ğ",);
    $yea2=array("_","s","c","g","g","i","i","i","s","o ","u","","-","-","","c","i","b","w","t","r","o","e","u","d","z"," m","y","n","v","a","n","h","p","l","k","i","i","f" ,"c","g","i","s","o","u","_","","","-","_","i","s","g","i","s","g");
    Bunu deneyebilirsin dostum.
  • 29-10-2009, 13:45:26
    #4
    Maalesef işe yaramadı dostum.

    Ayrıca Ş,İ gibi karekterleri ekliyorum,buraya kopyaladığımda çıkmamş nedense.Bir çok farklı fonksiyon da denedim .ama sonuç aynı.

    preg_replace ile o karekterlere " " attırıyordum."i" yaptığımda "İ" harfi "i" oluyor fakat bu seferde "Ş","Ğ" gibi karekter de "i" harfine çevriliyor.

    Acaba dil kodlmasında mı bir sorun var
  • 29-10-2009, 14:10:49
    #5
    Sanırım vbseonun bir fonskiyonu yanlış hatırlamıyorsam.
    function guzelurl($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(' ', '&quot;', '&amp;', '&', '\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('Ñ', 'ñ');
        $url = str_replace ($find, 'n', $url);
        
        $find = array('/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/');
    
        $repl = array('', '-', '');
    
        $url = preg_replace ($find, $repl, $url);
        $url = str_replace ('--', '-', $url);
    
        return $url;
    }
  • 29-10-2009, 14:14:37
    #6
    Teşekkürler arkadaşım ama Maalesef aynı sorun devam etmekte.
    Bu sorun çok dallanıp budaklandı
    Araştırmalarım sonucunda dil kodlamasının öneminden bahsetmişler.Benim dil kodlamam ISO 8859-9 charset'e sahip.

    Bununla alakası olabilirmi acaba ?
  • 29-10-2009, 14:58:14
    #7
    Sorunu hallettim arkadaşlar ,böyle bir problemi yaşayan olursa çözüme şu şekilde ulaştım :

    Fonksiyonun dosyanızı "EditPlus" tarzında bir programla açın.Kaydederken Ansi formatında kaydedip,tekrar ftpden gönderin.

    Şuan hiçbir problem kalmadı.Hepinize teşekkür ederim.

    iyi çalışmalar