1

我想根据用户提交的帖子标题制作一个连字符分隔的字符串以在 URL 中使用。假设如果用户输入帖子的标题如下

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

我想将其转换如下

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

可能还有一些我也想转换的字符。例如 '&' 到 'and' 和 '#'、'%' 到连字符 (-)。其中一种方法是使用 php 替换功能。但是使用这种方法,我不得不多次调用replace函数。这很耗时。另一个问题是标题字符串中可能有多个连字符 (-),我想将多个连字符 (-) 转换为一个连字符 (-)。

有没有稳健有效的方法来解决这个问题?

4

2 回答 2

8

您可以使用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
于 2013-04-04T06:33:31.850 回答
1

我建议使用该sanitize_title()功能检查文档

于 2016-09-06T11:56:22.150 回答