删除特殊字符并在单词php mysql之间添加短划线

chr*_*ris 2 php mysql

我试图剥离所有特殊字符并在所有单词之间添加一个短划线.

例:

示例文本:如何制作某些内容,其他内容以及其他内容.

示例字符串:

$string = "How to make something, something else, and other stuff.";
Run Code Online (Sandbox Code Playgroud)

它应该如何看待的例子:如何制作东西 - 其他东西和其他东西

我需要一个能去除所有特殊字符的函数,但也要在每个单词之间添加短划线"但也不要在最后一个单词后添加短划线".任何人都有我应该怎么做的想法?我认为这很简单.可能是一个带有正则表达式的preg_replace,可以解决特殊字符问题,但添加破折号是我感到困惑的地方,不知道该怎么做.

Wri*_*ken 5

假设字符串是utf-8:

$string = 'Höw to máke sòmething, something else, and other stuff';
$string = preg_replace('/[^a-z0-9]+/i','-',
   iconv('UTF-8','ASCII//TRANSLIT',$string));
$string = trim($string,'-');
Run Code Online (Sandbox Code Playgroud)