PHP:将英文普通文本转换为URL

时间:2016-05-18 21:03:18

标签: php url urlencode

我尝试将普通英文文本转换为网址路径。

例如

  • 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)));

它不会将+转换为-

对于'/'和'&'来说,似乎也不行(对于某些字符串不起作用。)

有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

对于您的示例,这应该有效:

$result = preg_replace('/[^a-z0-9]+/i', '-', $text);

如果您想要所有小写,请改用strtolower($text),然后不需要i修饰符。

答案 1 :(得分:1)

这个过程通常被称为“制作slu”。 你可以找到各种准备好的功能。 关于考虑Unicode,功能可能更复杂。

但是,您的问题在这里得到解答: PHP function to make slug (URL string)