2013-04-04 75 views
0

我想在用户提交的帖子标题的基础上的URL中使用连字符分隔的字符串。 假设如果用户输入文章的标题如下如何在PHP中创建连字符分隔的字符串

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

我想把它转换成如下

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

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

+0

您是否尝试过preg_replace? – 2013-04-04 06:30:41

+1

他们通常称为“slu”“,寻找这个,它会产生相关的结果。 – complex857 2013-04-04 06:31:41

+0

请参阅http://stackoverflow.com/questions/5305879/automatic-clean-and-seo-friendly-url-slugs?lq=1 – Barmar 2013-04-04 06:34:08

回答

4

可以使用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 
+0

谢谢。但是它会将'&'转换为'和','#','%'转换为' - '。请完整阅读我的问题。 – Munib 2013-04-04 09:31:33

相关问题