Merhaba arkadaşlar. Sitenizde yeniyim. Öncelikle çok detaylı bir php bilgim yok diyebilirim. Temel bir kaç fonksiyon biliyorum sadece. Sahip olduğum internet sitesinde bir arama motoru yaptım. Latin bölümünde sorun yok, ama utf-8 karakterlerimde problemler var.
Problemi basit bir dille anlatmak gerekirse konu başlıklarını strtolower ile küçük harfe çevirdim. latin alfabesi harflerinde bir sorun yok. gayet düzgün. ama bana gereken diğer alfabede karakterleri büyük veya küçük harfe göre bile farklı algılıyor. Başka bir deyişle alfabemin "A" harfini "a" olarak yazınca arama motoru sonuç vermiyor. Bunu da basite indirgemek için str_replace kullanıp tüm latin dışı karakterleri hallettim. Buraya kadar da tamam. Ama kullandığım dilde bir de tonlama problemi var. Türkçeye vuracak olursam işi, normalde arama motoruna "a" veya "â" tipinde üstünde tonlama işareti bulunan harflerin aynı sonucu vermesini, bu harfleri farklı algılamamasını istiyorum.
Yani ben a'da yazsam bana içinde a ve â bulunan, veya â'da yazsam içinde a ve â bulunan kelimeleri getirmesini, farklı bir harfmiş gibi algılamamasını istiyorum. Bir başka deyişle bu iki karakteri eşitlemek istiyorum. Hangi formülü kullanmam gerekli?
Şu ana kadar şöyle bir yol izledim. Araya nasıl bir kodlama sıkıştırmam lazım ki arama iki karakteri aynı algılasın?
if ($arama)
{
$arama = str_replace("%20"," ",$arama);
$arama = str_replace("A","a",$arama);
$arama = str_replace("Â","â",$arama);
...... (bu liste latin alfabesinde bulunmayan harfler için uzayıp gidiyor. A sizi yanıltmasın diğer harfler görünmeyebilir diye bu örneği verdim.)
$arama = strtolower($arama);
$string=$_GET['arama'];
Problemi basit bir dille anlatmak gerekirse konu başlıklarını strtolower ile küçük harfe çevirdim. latin alfabesi harflerinde bir sorun yok. gayet düzgün. ama bana gereken diğer alfabede karakterleri büyük veya küçük harfe göre bile farklı algılıyor. Başka bir deyişle alfabemin "A" harfini "a" olarak yazınca arama motoru sonuç vermiyor. Bunu da basite indirgemek için str_replace kullanıp tüm latin dışı karakterleri hallettim. Buraya kadar da tamam. Ama kullandığım dilde bir de tonlama problemi var. Türkçeye vuracak olursam işi, normalde arama motoruna "a" veya "â" tipinde üstünde tonlama işareti bulunan harflerin aynı sonucu vermesini, bu harfleri farklı algılamamasını istiyorum.
Yani ben a'da yazsam bana içinde a ve â bulunan, veya â'da yazsam içinde a ve â bulunan kelimeleri getirmesini, farklı bir harfmiş gibi algılamamasını istiyorum. Bir başka deyişle bu iki karakteri eşitlemek istiyorum. Hangi formülü kullanmam gerekli?
Şu ana kadar şöyle bir yol izledim. Araya nasıl bir kodlama sıkıştırmam lazım ki arama iki karakteri aynı algılasın?
if ($arama)
{
$arama = str_replace("%20"," ",$arama);
$arama = str_replace("A","a",$arama);
$arama = str_replace("Â","â",$arama);
...... (bu liste latin alfabesinde bulunmayan harfler için uzayıp gidiyor. A sizi yanıltmasın diğer harfler görünmeyebilir diye bu örneği verdim.)
$arama = strtolower($arama);
$string=$_GET['arama'];