• 15-01-2008, 21:40:47
    #1
    bir scriptte seo link yapmak için

    function make_friendly($string) 
    { 
        $string = trim($string); 
        $string = strtolower($string); 
        $find = array('<b>', '</b>'); 
        $string = str_replace ($find, '', $string); 
        $string = preg_replace('/<(\/{0,1})img(.*?)(\/{0,1})\>/', 'image', $string); 
        $find = array(' ', '&quot;', '&amp;', '&', '\r\n', '\n', '/', '\\', '+', '<', '>'); 
        $string = str_replace ($find, '-', $string); 
        $find = array('é', 'è', 'ë', 'ê', 'É', 'È', 'Ë', 'Ê'); 
        $string = str_replace ($find, 'e', $string); 
        $find = array('í', 'i', 'ì', 'î', 'ï', 'I', 'I', 'Í', 'Ì', 'Î', 'Ï'); 
        $string = str_replace ($find, 'i', $string); 
        $find = array('ó', 'ö', 'Ö', 'ò', 'ô', 'Ó', 'Ò', 'Ô'); 
        $string = str_replace ($find, 'o', $string); 
        $find = array('á', 'ä', 'â', 'à', 'â', 'Ä', 'Â', 'Á', 'À', 'Â'); 
        $string = str_replace ($find, 'a', $string); 
        $find = array('ú', 'ü', 'Ü', 'ù', 'û', 'Ú', 'Ù', 'Û'); 
        $string = str_replace ($find, 'u', $string); 
        $find = array('ç', 'Ç'); 
        $string = str_replace ($find, 'c', $string); 
        $find = array('s', 'S'); 
        $string = str_replace ($find, 's', $string); 
        $find = array('g', 'G'); 
        $string = str_replace ($find, 'g', $string); 
        $find = array('/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/'); 
        $repl = array('', '-', ''); 
        $string = preg_replace ($find, $repl, $string); 
        $string = str_replace ('--', '-', $string); 
        $string = $string.".html"; 
        return $string; 
    }
    fonksiyonunu kullanmak istedim. fakat ''ş ç ı ğ'' harflerini çevirmeyip yokmuş gibi davranmakta.

    örneğin ''ŞşÇçÖöIıĞğÜü'' kelimesini ''cou'' şekline çeviriyor. bu fonksiyonu kullanmadan direk olarak gelen veri içindeki ş yi s ye çevirmek istediğimde de yokmuş gibi gibi davranmakta. sizce neden böyle bir sorun var?
  • 15-01-2008, 22:05:53
    #2
    Bu kadar karışık alfabeler kullanmıyorsan aşağıdaki kod işini görebilir:

    function SeoLink($text){
        $tr = array('ş','Ş','ı','İ','ğ','Ğ','ü','Ü','ö','Ö','Ç','ç');
        $eng = array('s','S','i','I','g','G','u','U','o','O','C','c');
        $text = str_replace($tr,$eng,$text);
        $text = eregi_replace('[^0-9A-Za-z]',"-",$text);
        $text = preg_replace("@--*@","-",$text);
        return strtolower($text);
    }
  • 15-01-2008, 22:16:18
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    UndeRTakeR'ın verdiği kodu kullanabilrsin.

    Neden böyle bir sorun var? yanıtına gelince de bazı harfler yanlış tanıtılmış mesela;


    $find = array('s', 'S');
    $string = str_replace ($find, 's', $string);


    kısmında hiçbir yerde ş veya Ş yok s ve S var.
    o şekilde diğerleri de değişirse sorun kalmaz. senin kodun da çalışır.
  • 15-01-2008, 22:20:14
    #4
    Bende ilk defa seo yapacağım zaman yukarıdaki kodu görmüştüm ancak sitemde daha önceden görmediğim o tip harfler olmadığı için bana gereksiz geldi Kendi fonksiyonum daha güzel :P
  • 17-01-2008, 02:09:00
    #5
    arkadaşlar bu php kodunu nereye yazabiliriz?
  • 17-01-2008, 14:49:43
    #6
    Link verirken adresi direk yazmak yerine bu fonkisyondan çıkan sonucu yazacaksın.
    Örn:
    $baslik="aklıma başlık gelmedi üfff"
    "r10.net/$baslik
    böyle bir link verirsen boşluklar, türkçe karakterler sorun olur, onun yerine
    $baslik=SeoLink($baslik);
    r10.net/$baslik
    yaparsan türkçe karakterler ve boşlukları halletmiş olursun.
  • 18-01-2008, 20:04:41
    #7
    sendeki function a göre linki böyle kur;
    echo "<a href=a_5/".make_friendly(şçığ).">x</a>";
    mesela
  • 18-01-2008, 21:46:51
    #8
    $find = array('ğ', 'Ğ');
    $string = str_replace ($find, 'g', $string);
    $find = array('ş', 'Ş');
    $string = str_replace ($find, 's', $string);
    $find = array('ç', 'Ç');
    $string = str_replace ($find, 'c', $string);
    ...

    şeklinde kodunun içine eklersen hallolur.