PHP 替换字符串中的特殊字符

Tal*_*Can 4 php

我有干净的删除特殊卡拉科特功能从字符串,但该功能还消除土耳其卡拉科特(?,?,?,C,O)从字符串

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

   return preg_replace('/-+/', '-', $string); 
}
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

Muh*_* M. 5

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

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

    return preg_replace('/-+/', '-', $string);
}
Run Code Online (Sandbox Code Playgroud)

测试:

$str='Merhaba=Türkiye 12345 çok çal?? another one ! *, !@_';
var_dump(clean($str));
//Output: string(57) "Merhaba Türkiye 12345 çok çal?? another one   "
Run Code Online (Sandbox Code Playgroud)