PHP:将英文普通文本转换为URL
PHP: Convert English normal text to URL
我尝试将普通英文文本转换为 url 路径。
例如
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)));
它不会将 +
转换为 -
另外,对于“/”和“&”(对于某些字符串不起作用。),这似乎并不适用。
有没有更好的方法?
这个过程通常被称为'making slug'。
您可以找到各种为此准备的功能。
考虑到Unicode,函数可能更复杂。
但是,您的问题已在此处得到解答:
PHP function to make slug (URL string)
对于您的示例,这应该有效:
$result = preg_replace('/[^a-z0-9]+/i', '-', $text);
如果你想要全部小写,那么使用 strtolower($text)
代替,那么不需要 i
修饰符。
我尝试将普通英文文本转换为 url 路径。
例如
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)));
它不会将 +
转换为 -
另外,对于“/”和“&”(对于某些字符串不起作用。),这似乎并不适用。
有没有更好的方法?
这个过程通常被称为'making slug'。 您可以找到各种为此准备的功能。 考虑到Unicode,函数可能更复杂。
但是,您的问题已在此处得到解答: PHP function to make slug (URL string)
对于您的示例,这应该有效:
$result = preg_replace('/[^a-z0-9]+/i', '-', $text);
如果你想要全部小写,那么使用 strtolower($text)
代替,那么不需要 i
修饰符。