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

时间:2013-04-04 06:28:37

标签: php replace

我想在用户提交的帖子标题的基础上创建一个连字符分隔的字符串。 假设用户输入帖子的标题如下

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

我想将其转换为如下

$url = "usa-is-going-to-deport-indians-breaking-news-news-india";

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

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

2 个答案:

答案 0 :(得分:5)

您可以使用preg_replace功能执行此操作:

输入:

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

$string = preg_replace("/[^\w]+/", "-", $string);
echo strtolower($string);

输出

usa-is-going-to-deport-indians-breaking-news-news-india

答案 1 :(得分:0)

我建议使用sanitize_title()功能 检查documentation