PHP mb_ereg_replace не заменяет, пока preg_replace работает по назначению

Я пытаюсь заменить в строке все несловные символы пустой строкой, ожидающей пробелов, и соединить все несколько пробелов в виде одного пробела.

Следующий код делает это.

$cleanedString = preg_replace('/[^\w]/', ' ', $name); $cleanedString = preg_replace('/\s+/', ' ', $cleanedString); 

Но когда я пытаюсь использовать mb_ereg_replace, ничего не происходит.

 $cleanedString = mb_ereg_replace('/[^\w]/', ' ', $name); $cleanedString = mb_ereg_replace('/\s+/', ' ', $cleanedString); 

$ cleanedString такой же, как и в случае $ name в приведенном выше случае. Что я делаю не так?

mb_ereg_replace не использует разделители. Вы можете или не обязательно указывать кодировку раньше.

 mb_regex_encoding("UTF-8"); //regex could also be \W $cleanedString = mb_ereg_replace('[^\w]', ' ', $name); $cleanedString = mb_ereg_replace('\s+', ' ', $cleanedString); 
 function create_slug_html($string, $ext='.html'){ $replace = '-'; $string=strtolower($string); $string=trim($string); mb_regex_encoding("UTF-8"); //regex could also be \W $string= mb_ereg_replace('[^\w]', ' ', $string); $string= mb_ereg_replace('\s+', ' ', $string); //remove query string if(preg_match("#^http(s)?://[a-z0-9-_.]+\.[az]{2,4}#i",$string)){ $parsed_url = parse_url($string); $string = $parsed_url['host'].' '.$parsed_url['path']; //if want to add scheme eg. http, https than uncomment next line //$string = $parsed_url['scheme'].' '.$string; } //replace / and . with white space $string = preg_replace("/[\/\.]/", " ", $string); // $string = preg_replace("/[^a-z0-9_\s-]/", "", $string); //remove multiple dashes or whitespaces $string = preg_replace("/[\s-]+/", " ", $string); //convert whitespaces and underscore to $replace $string = preg_replace("/[\s_]/", $replace, $string); //limit the slug size $string = substr($string, 0, 200); //slug is generated return ($ext) ? $string.$ext : $string; 

}

проверьте, хорошо ли это, и поддерживайте английский и юникод

Вход не является мультибайтом, поэтому функция mb не работает.