在PHP中,当空格和破折号一起出现时,如何替换它们?
例如,下面是我的URL
http://kjd.case.150/1 BHK+Balcony- 700+ sqft. spacious apartmetn Bandra Wes
在这里,我想用PHP中的破折号替换所有特殊字符。在URL中,"balcony“后面已经有一个破折号了。如果我用一个特殊字符替换破折号,那么它就变成了两个破折号,因为URL中已经有一个破折号了,而我只想要一个破折号。
发布于 2010-04-13 15:17:25
我想说你可能想换种方式。不是“空格”,而是每个非字母数字字符。因为可以有其他字符,在URl中是不允许的(例如,+符号用作空格替换)
因此,要从自由格式的文本中创建有效的url
$url = preg_replace("![^a-z0-9]+!i", "-", $url);
发布于 2010-04-13 15:06:48
如果连字符周围最多有一个空格,你可以使用John的答案。如果可以有多个空间,您可以尝试使用preg_replace
$str = preg_replace('/\s*-\s*/','-',$str);
这将用-
替换即使是没有任何空格的-
!!
要使其更高效,您可以这样做:
$str = preg_replace('/\s+-\s*|\s*-\s+/','-',$str);
现在,这将确保-
在被替换时周围至少有一个空间。
发布于 2010-10-08 16:25:00
这对你来说应该足够了。
strtolower(str_replace(array(' ', ' '), '-', preg_replace('/[^a-zA-Z0-9 s]/', '', trim($string))));
https://stackoverflow.com/questions/2627523
复制相似问题