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

PHP: Convert English normal text to URL

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

例如

所以我尝试用这个代码转换它:

str_replace("-", "+", urlencode(trim($text)));

它不会将 + 转换为 -

另外,对于“/”和“&”(对于某些字符串不起作用。),这似乎并不适用。

有没有更好的方法?

这个过程通常被称为'making slug'。 您可以找到各种为此准备的功能。 考虑到Unicode,函数可能更复杂。

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

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

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

如果你想要全部小写,那么使用 strtolower($text) 代替,那么不需要 i 修饰符。