首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用PHP语言将URL中的所有空格和特殊符号替换为破折号

使用PHP语言将URL中的所有空格和特殊符号替换为破折号
EN

Stack Overflow用户
提问于 2010-04-13 14:47:46
回答 5查看 41.2K关注 0票数 24

在PHP中,当空格和破折号一起出现时,如何替换它们?

例如,下面是我的URL

代码语言:javascript
复制
http://kjd.case.150/1 BHK+Balcony- 700+ sqft. spacious apartmetn Bandra Wes

在这里,我想用PHP中的破折号替换所有特殊字符。在URL中,"balcony“后面已经有一个破折号了。如果我用一个特殊字符替换破折号,那么它就变成了两个破折号,因为URL中已经有一个破折号了,而我只想要一个破折号。

EN

回答 5

Stack Overflow用户

发布于 2010-04-13 15:17:25

我想说你可能想换种方式。不是“空格”,而是每个非字母数字字符。因为可以有其他字符,在URl中是不允许的(例如,+符号用作空格替换)

因此,要从自由格式的文本中创建有效的url

代码语言:javascript
复制
$url = preg_replace("![^a-z0-9]+!i", "-", $url);
票数 49
EN

Stack Overflow用户

发布于 2010-04-13 15:06:48

如果连字符周围最多有一个空格,你可以使用John的答案。如果可以有多个空间,您可以尝试使用preg_replace

代码语言:javascript
复制
$str = preg_replace('/\s*-\s*/','-',$str);

这将用-替换即使是没有任何空格的- !!

要使其更高效,您可以这样做:

代码语言:javascript
复制
$str = preg_replace('/\s+-\s*|\s*-\s+/','-',$str);

现在,这将确保-在被替换时周围至少有一个空间。

票数 2
EN

Stack Overflow用户

发布于 2010-10-08 16:25:00

这对你来说应该足够了。

代码语言:javascript
复制
strtolower(str_replace(array('  ', ' '), '-', preg_replace('/[^a-zA-Z0-9 s]/', '', trim($string))));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2627523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档