我正在寻找一个像 SO 用于问题链接的 URL 字符串。我不打算重写 url (mod_rewrite)。我正在寻找在页面上生成链接。
示例:问题名称是:
Is it better to use ob_get_contents() or $text .= ‘test’;
URL最终是:
http://stackoverflow.com/questions/292068/is-it-better-to-use-obgetcontents-or-text-test
我感兴趣的部分是:
is-it-better-to-use-obgetcontents-or-text-test
所以基本上我希望清除任何不是字母数字的东西,同时仍然保持 URL 可读。我创建了以下内容,但我不确定它是否是最好的方法,或者它是否涵盖了所有可能性:
$str = urlencode(
strtolower(
str_replace('--', '-',
preg_replace(array('/[^a-z0-9 ]/i', '/[^a-z0-9]/i'), array('', '-'),
trim($urlPart)))));
所以基本上:
- 修剪
- 替换任何非字母数字加上空格
- 然后用破折号替换所有不是字母数字的
- 用。。。来代替 -。
strtolower()
urlencode()
- 可能不需要,但只是为了很好的衡量。