İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Aramada TR karakter problemi. Lütfen yardım

Schzo*

0
İyinet Üyesi
Katılım
30 Haziran 2006
Mesajlar
134
Reaction score
0
arkadaşlar sitede kullanıcıların konuyla alakalı kelimeler girebileceği bir kısım var. buraya girdikleri kelimeler örneğin "deneme" kelimesi eklendiği zaman, sitede /deneme.html diye bir sayfaya sahip oluyor ve aynı kelimenin girildiğini konular oradan görülebiliyor. site üstündeki arama motoru da bu prensiple çalışıyor. arama yaptırınca bu sayfaya yönleniyor. şimdi asıl sorunum tr karakterlerde... sayfaya tr karakter içeren bir keyword girilirse sayfa adresinde değişim olmuyor.. yani "çağrışım" kelimesi keyword olarak girildiyse, /çağrışım.html olarak sayfa oluşuyor. fakat bu sayfaya içeriğinde tr karakter problemi var ve arama sanki çağrışım kelimesi yazılmış gibi değil de sapır saçma şeyler yazılmış gibi yapıyor. böyle olunca da insanlar istediği sayfaya ulaşamıyor.. acaba bunu çözmek için neler yapabilirim. saygılar...
 

ploop

0
İyinet Üyesi
Katılım
11 Ekim 2004
Mesajlar
6,964
Reaction score
0
Konum
karavan
Sayfa yapısı olarak utf-8 kullanırsan problem olmaz, ben öyle kullanıyorum sorun olmuyor. Veritabanı ve sayfalarım utf-8..
 

yagmayok

1
İyinet Üyesi
Katılım
25 Ocak 2005
Mesajlar
7,131
Reaction score
89
Ploop'un dediği gibi de yapabilirsin. Ama istersen şu şekilde bir yöntemde uygulayabilirsin.

Öncelikle kelmelerin kaydedildiği veritabanında yeni bir bölüm daha oluştur. Onun adına da "kelimeseo" diyebiliriz. Daha sonra kullanıcıların kelime girdiği bölümde bir değişiklik yaparak aşağıdaki kodu kullanarak sayfalarını "çağrışım.html" değil de "cagrisim.html" olarak oluşturursun. daha sonra arama bölümüne de bu id den türkçe karakterlinisini çağırtarak aram yaptırmayı sağlayabilirsin.

PHP:
<?php

function make_url_friendly($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('/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/');

    $repl = array('', '-', '');

    $url = preg_replace ($find, $repl, $url);
    $url = str_replace ('--', '-', $url);

    return $url;
}


// Formdan gelen kelime $kelime şeklinde ise

$kelimeseo = make_url_friendly($kelime); //kullanarak veri tabanına yazdırabilirsin



?>
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Üst