/** * 多个连续空格只保留一个 * * @param string $string 待转换的字符串 * @return unknown */ static public function merge_spaces ( $string ) { return preg_replace ( "/\s(?=\s)/","\\1", $string ); }
出处:http://www.open-open.com/code/view/1420711244390 //Delphi有一个函数可以将多余的字符串替换一次,保留其中一个。php就复杂多了,而且我对正则也不是太了解。
代码经我修改后,达到了我想要的目的:除两个连续空格外,其它的单个不连续空格均被替换。
<?php
header('Content-type: text/html; charset=utf-8');
$str = "PHP去除 多余空格 多个连续 空格只保留一个";
$str = preg_replace('/\s(?=\S)/','',$str); //只保留一个空格,还有(?=\s)这个写法叫“断言”
echo $str;
?>