preg_replace: joker umlaut-karakterleri eşleşmiyor

1 Cevap php

i \ w joker kullanarak bir dize filtrelemek istiyorum, ama ne yazık ki inceltmeleri kapsamaz.

$i = "Die Höhe";    
$x = preg_replace("/[^\w\s]/","",$i);
echo $x; // "Die Hhe";

Ancak, ben preg_replace için tüm karakterleri ekleyebilirsiniz, ama liste çok uzun olacak çünkü bu, çok şık değil. ATM, ben sadece Almanca için bu hazırlanıyorum, ama gelmek için daha fazla dil vardır.

$i = "Die Höhe";    
$x = preg_replace("/[^\w\säöüÄÖÜß]/","",$i);
echo $x; // "Die Höhe";

Kerede hepsini maç için bir yolu var mı?

1 Cevap

Sen dizeleri belli UTF-8, böylece 'u' bayrağı ve unicode özelliklerini yerine \ w istiyorum

$x = preg_replace('/[^\p{L}\p{N} ]/u',"",$i);