编辑:
当有人错误地在字符之间输入许多空格时,我所做的是将所有空格替换为-但如果中间有许多空格怎么办?例如:
用户输入的帖子标题:
فارسی * Allposts---
当我将上面的示例转换为用户友好的url (slug)时,我得到了这个:
----فارسی---*-Allposts---
如何为空格和删除特殊字符和保留utf-8字符?我正在寻找的输出如下所示:
فارسی-Allposts
是否有一种方法来处理它与正则表达式?如果是,怎么做?
编辑:
现在我可以管理多个空格,如下:
$string = preg_replace('/s+/', '-', $string);
- 删除特殊字符:replace [-?*]或任何黑名单字符与空字符串。
- 将空格字符串转换为单个字符:将s+替换为-
看起来你已经知道第二步了。确保你是在第二次这样做,这样你就不会不小心删除了你刚刚插入的连字符。