Metinden Aksanları nasıl kaldırılır?

7 Cevap php

Ben bir İsveçli web sitesi yapıyorum ve İsveççe harfler A, A, ve o vardır.

Ben url güvenli PHP ile olmak üzere bir kullanıcı tarafından girilen bir dize yapmak gerekir.

Temelde, bütün bu DIŞINDA, altını tüm karakterleri dönüştürmek gerekiyor:

 A-Z, a-z, 1-9

ve tüm İsveç bu gibi dönüştürülen alınmalıdır:

'A' ve 'a' ve 'o' için 'ö' için 'ä' için 'å' (yukarıdaki noktaları kaldırın).

Dediğim gibi kalan alt çizgi haline gelmelidir.

Düzenli ifadeler iyi değil Im yüzden yardım çocuklar seviniriz!

Teşekkürler

NOT: UrlEncode DEĞİL ... Ben vs vs ... bir veritabanında saklamak gerekir, urlencode alışkanlık benim için çalışır.

7 Cevap

iconv kullanarak alfasayısal olmayan karakterler yerine daha sonra, ASCII verilen bir kodlama dizeleri dönüştürmek için kullanabileceğiniz preg_replace:

$input = 'räksmörgås och köttbullar'; // UTF8 encoded
$input = iconv('UTF-8', 'ASCII//TRANSLIT', $input);
$input = preg_replace('/[^a-zA-Z0-9]/', '_', $input);
echo $input;

Sonuç:

raksmorgas_och_kottbullar

Bu hemen hemen tüm durumlarda kolları yararlı olmalıdır.

function Unaccent($string)
{
    return preg_replace('~&([a-z]{1,2})(?:acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml|caron);~i', '$1', htmlentities($string, ENT_COMPAT, 'UTF-8'));
}

ve tüm İsveç bu gibi dönüştürülen alınmalıdır:

'A' ve 'a' ve 'o' için 'ö' için 'ä' için 'å' (yukarıdaki noktaları kaldırın).

Kullan normalizer_normalize() to get rid of diacritical marks.

Dediğim gibi kalan alt çizgi haline gelmelidir.

Çizgi bunları değiştirin: preg_replace() with a pattern of [\W] (harf, rakam veya alt çizgi uymuyor herhangi bir karakter IOW) kullanın.

Nihai sonuç gibi görünmelidir:

$data = preg_replace('[\W]', '_', normalizer_normalize($data));

gibi basit

 $str = str_replace(array('å', 'ä', 'ö'), array('a', 'a', 'o'), $str); 
 $str = preg_replace('/[^a-z0-9]+/', '_', strtolower($str));

Eğer veri ve kod için aynı kodlamayı kullanın varsayarak.

Basit bir çözüm arayışı ile str_replace işlevini kullanın ve harf dizileri değiştirmektir.

Sadece kullanmak, isveç karakter filtre fantezi İfadelerinin gerekmez strtr function gibi, onları "çevirmek" için:

$your_URL = "www.mäåö.com";
$good_URL = strtr($your_URL, "äåöë etc...", "aaoe etc...");
echo $good_URL;

-> Çıktı: www.maao.com :)