【发布时间】:2012-09-05 22:14:03
【问题描述】:
我目前正在使用看似极其复杂且不必要的解决方案来形成所需的字符串。
字符串可以有任何标点符号,包括斜线。
例如,这个字符串:
Test Ripple, it\'s a comic book one!
使用我目前的方法:
str_replace(" ", "-", trim(preg_replace('/[^a-z0-9]+/i', ' ', str_replace("'", "", stripslashes($string)))))
返回正确的结果:
Test-Ripple-its-a-comic-book-one
以下是我当前(较差的)解决方案为实现所需输出所做的细分:-
- 去掉字符串中的所有斜线
- 使用 str_replace 删除所有撇号
- 使用 preg_replace 删除任何剩余的标点符号并用空格替换它
- 从字符串的开头/结尾剪掉任何可能由标点符号引起的多余空格。
- 用“-”替换所有空格
但必须有更好更有效的方法。有人可以帮忙吗?
【问题讨论】: