删除php中生成的空格

时间:2011-08-03 21:26:33

标签: php mysql removing-whitespace

我遇到的问题是删除空格。 我尝试了几种不同的方法,但没有一种方法可以删除它们。 我有一个下拉菜单,里面有空格,所以所有时间都排成一行,以便客户轻松理解。它来自下面的$ str。主要问题是,一旦将其发送到mysql数据库,它就会用带有重音符号的A替换额外的空格。另一个问题是,它最终看起来不正确,在提交之前需要额外的空间供客户审查。我不清楚mysql_prep的功能,但在数据库上运行查询之前它还有修剪。

我试过了:

$str = "  9:00 AM  to  11:00 AM"
$time = str_replace(' ', '', $str);
echo $time; // OUTPUTS "  9:00AM  to  11:00AM" // THOSE SPACES DONT NEED TO BE REMOVED


$str = "  9:00 AM  to  11:00 AM"
$time = str_replace('  ', '', $str); //NOTE THE EXTRA SPACE
echo $time; // OUTPUTS "  9:00 AM  to  11:00 AM"    


$str = "  9:00 AM  to  11:00 AM"
$time = str_replace(' ', '', $str); //EVEN TRIED THIS EVEN THOUGH THERES NO WAY
echo $time; // OUTPUTS "  9:00 AM  to  11:00 AM"

$str = "  9:00 AM  to  11:00 AM"
$time = preg_replace('/\s+/', '', $str);
echo $time; // OUTPUTS "???9:00 AM??to??11:00 AM"//SEEMS CLOSEST BUT THE TRIANGLE QUESTION MARKS REPLACE THE SPACES


$str = "  9:00 AM  to  11:00 AM"
$time = preg_replace('/\s\s+/', ' ', $str);
echo $time; // OUTPUTS "  9:00 AM  to  11:00 AM"

我甚至尝试使用爆炸和修剪来绕道进行,甚至修剪也没有移除空间。我正在使用的版本; PHP:5.3.4,MySQL:5.1.53&火狐:5.0.1

3 个答案:

答案 0 :(得分:2)

不间断的空间不是正常的空间。

str_replace("\xa0",'',$string);

或者获取其中的所有其他空格:

preg_replace("/[\xa0\s]{2,}/",'',$string);

注意字符编码,你似乎遇到了一些问题。

答案 1 :(得分:0)

使用此:

$string = preg_replace('/\s+/', '', $string);

答案 2 :(得分:0)

好一点代码,但有效

$str = "  9:00 AM  to  11:00 AM";  

$find_cln = array (' ','to','AM','PM'); // find
$rep_cln = array ('',' to ',' AM',' PM'); // replace

$str = str_replace($find_cln, $rep_cln, $str);