PHP删除标点符号(无破折号)

Hez*_*rac 4 php replace character

我在stackoverflow上找到了下面的脚本,它用破折号替换了特殊字符,以便清理url构建.但是,它并没有做得很好,因为它用破折号替换标点符号,如下面的"坏"示例所示.所以,相反,我想特别标点符号不要被任何东西替换,只是被删除...没有空格,没有破折号.任何有关这方面的帮助将不胜感激.

例:

today's weather is hot!

好:

todays-weather-is-hot

坏:

today-s-weather-is-hot-

这个脚本做了不好的例子......如何让它做得好?

function slugUrl($string) {
    $string = strtolower($string);
    $string = preg_replace('/[^a-zA-Z0-9]/i','-',$string);
    $string = preg_replace("/(-){2,}/",'$1',$string);
    return $string;
}
Run Code Online (Sandbox Code Playgroud)

mbi*_*tte 5

那这个呢?(我刚刚删除了标点符号)

function slugUrl($string){
    $string = strtolower($string);
    $string = preg_replace('/[!?\']/','',$string);
    $string = preg_replace('/[^a-zA-Z0-9]/i','-',$string);
    $string = preg_replace("/(-){2,}/",'$1',$string);
    return $string;
}
Run Code Online (Sandbox Code Playgroud)

  • 我还首先修剪()修剪白色空间. (2认同)