我有 clean 函数,用于从字符串中删除特殊字符,但该函数也从字符串中删除土耳其语字符 (ı,ğ,ş,ç,ö)

function clean($string) {
   $string = str_replace(' ', ' ', $string);
   $string = preg_replace('/[^A-Za-z0-9\-]/', ' ', $string);

   return preg_replace('/-+/', '-', $string);
}

我该如何解决?

最佳答案

添加那些你想保留到 preg 的字符,如果需要还添加大写我编辑了你的代码:

function clean($string) {
    $string = str_replace(' ', ' ', $string);
    $string = preg_replace('/[^A-Za-z0-9\-ığşçöüÖÇŞİıĞ]/', ' ', $string);

    return preg_replace('/-+/', '-', $string);
}

测试:
$str='Merhaba=Türkiye 12345 çok çalış another one ! *, !@_';
var_dump(clean($str));
//Output: string(57) "Merhaba Türkiye 12345 çok çalış another one   "

关于PHP 替换字符串中的特殊字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36116670/

10-12 12:51
查看更多