如何在PHP中构建连字符分隔的字符串

Mun*_*nib 0 php replace

我想在用户提交的帖子标题的基础上在URL中使用连字符分隔的字符串.假设用户输入帖子的标题如下

$title = "USA is going to deport indians -- Breaking News / News India";
Run Code Online (Sandbox Code Playgroud)

我想将其转换如下

$url = "usa-is-going-to-deport-indians-breaking-news-news-india";
Run Code Online (Sandbox Code Playgroud)

可能还有一些我想要转换的角色.例如'&'到'和'和'#','%',到连字符( - ).其中一种方法是使用php替换功能.但是使用这种方法,我必须多次调用replace函数.这很费时间.还有一个问题是标题字符串中可能有多个连字符( - ),我想将多个连字符( - )转换为一个连字符( - ).

有没有强大而有效的方法来解决这个问题?

Dea*_*Man 6

您可以使用preg_replace函数执行此操作:

输入:

$string = "USA is going to deport indians -- Breaking News / News India";

$string = preg_replace("/[^\w]+/", "-", $string);
echo strtolower($string);
Run Code Online (Sandbox Code Playgroud)

输出:

usa-is-going-to-deport-indians-breaking-news-news-india
Run Code Online (Sandbox Code Playgroud)