如何做一个更好的seo友好的URL,当有UTF-8字符和许多空格之间



当有人错误地在字符之间输入许多空格时,我所做的是将所有空格替换为-但如果中间有许多空格怎么办?例如:

用户输入的帖子标题:

فارسی   * Allposts---

当我将上面的示例转换为用户友好的url (slug)时,我得到了这个:

----فارسی---*-Allposts---

如何为空格和删除特殊字符和保留utf-8字符?我正在寻找的输出如下所示:

فارسی-Allposts  

是否有一种方法来处理它与正则表达式?如果是,怎么做?


编辑:

现在我可以管理多个空格,如下:

 $string = preg_replace('/s+/', '-', $string);

  1. 删除特殊字符:replace [-?*]或任何黑名单字符与空字符串。
  2. 将空格字符串转换为单个字符:将s+替换为-

看起来你已经知道第二步了。确保你是在第二次这样做,这样你就不会不小心删除了你刚刚插入的连字符。

最新更新