从string中删除多余的空格
我从数据库查询中收到一个string,然后在将其放入一个CSV文件之前删除所有HTML标记,回车符和换行符。 唯一的问题是,我无法find一种方法去除string之间的多余空格。
什么是删除内部空白字符的最佳方法?
不确定你想要什么,但有两种情况:
-
如果你只是在string的开头或结尾处理多余的空格 ,你可以使用
trim()
,ltrim()
或rtrim()
来删除它。 -
如果你正在处理一个string中的多余空格,请考虑使用一个空白符
" "*
的多个空格" "*
的preg_replace
" "
。
例:
$foo = preg_replace('/\s+/', ' ', $foo);
$str = str_replace(' ','',$str);
或者,用下划线replace,  等等
$str = trim(preg_replace('/\s+/',' ', $str));
上面的代码行将删除多余的空格,以及前导和尾随空格。
没有其他例子为我工作,所以我使用了这个:
trim(preg_replace('/[\s\t\n\r\s]+/', ' ', $text_to_clean_up))
这将replace所有的标签,新行,双空格等简单的1空间。
如果只想replacestring中的多个空格,例如: "this string have lots of space . "
而且你希望答案是"this string have lots of space"
,你可以使用下面的解决scheme:
$strng = "this string have lots of space . "; $strng = trim(preg_replace('/\s+/',' ', $strng)); echo $strng;
$str=preg_replace('/[\s]+/',' ',$str);
为了扩展Sandip的答案,我在日志中显示了一堆string,这些string在bit.ly中被错误地编码。 他们的意思只是编码的URL,但把一个叽叽喳喳句柄和一些其他的东西后一个空格。 看起来像这样
? productID =26%20via%20@LFS
通常情况下,这不会是一个问题,但我得到了很多的SQL注入尝试,所以我redirect任何不是一个有效的ID到404。我使用preg_replace方法,使无效productIDstring变成有效的productID。
$productID=preg_replace('/[\s]+.*/','',$productID);
我在URL中查找空格,然后删除所有内容。