PHP:将英文普通文本转换为 URL [重复]

Posted

技术标签:

【中文标题】PHP:将英文普通文本转换为 URL [重复]【英文标题】:PHP: Convert English normal text to URL [duplicate] 【发布时间】:2016-09-15 13:22:30 【问题描述】:

我尝试将普通英文文本转换为 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)));

它不会将+ 转换为-

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

有没有更好的办法?

【问题讨论】:

***.com/questions/2955251/… 【参考方案1】:

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

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

如果您想要全部小写,请改用strtolower($text),则不需要i 修饰符。

【讨论】:

快速打字机,正是我的想法,这里有 101 个 regex101.com/r/vU1lP6/1。 $result = trim(preg_replace('/[^a-z0-9]+/i', '-', strtolower($text)), '-'); - 添加了+strtolower;修剪 @luchaninov:谢谢!【参考方案2】:

这个过程通常被称为“制造蛞蝓”。 您可以为此找到各种准备好的功能。 考虑到 Unicode,函数可能会更复杂。

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

【讨论】:

以上是关于PHP:将英文普通文本转换为 URL [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式将 UITableView 样式从普通转换为组 [重复]

如何在 C# 中将上标或下标转换为普通文本

将 URL 转换为普通的 windows 文件名 Java

Google 表格 - 将 UTF-8 文本转换为“普通字符”

如何将上标字符转换为 C# 字符串中的普通文本

将包含科学计数法数字的字符串转换为 PHP 中的普通字符串