我尝试将普通英文文本转换为网址路径。
例如
this is a text!
- > this-is-a-text
this is a text&image
- > this-is-a-text-image
are you ok?
- > are-you-ok
所以我尝试用这段代码转换它:
str_replace("-", "+", urlencode(trim($text)));
它不会将+
转换为-
对于'/'和'&'来说,似乎也不行(对于某些字符串不起作用。)
有更好的方法吗?
答案 0 :(得分:2)
对于您的示例,这应该有效:
$result = preg_replace('/[^a-z0-9]+/i', '-', $text);
如果您想要所有小写,请改用strtolower($text)
,然后不需要i
修饰符。
答案 1 :(得分:1)
这个过程通常被称为“制作slu”。 你可以找到各种准备好的功能。 关于考虑Unicode,功能可能更复杂。
但是,您的问题在这里得到解答: PHP function to make slug (URL string)