-1

我遇到的问题是删除空格。我尝试了几种不同的方法,但都没有删除它们。我有一个下拉菜单,其中包含空格,以便客户可以轻松理解所有时间。它就像下面的 $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"

我什至尝试使用explode 和trim 以一种圆形的方式进行操作,甚至trim 也没有删除空格。我正在使用的版本;PHP:5.3.4, MySQL:5.1.53 & Firefox:5.0.1

4

3 回答 3

3

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

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

或者在其中获取所有其他空白:

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

并注意字符编码,您似乎对此有一些问题。

于 2011-08-03T22:02:55.773 回答
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);
于 2011-08-03T21:53:55.177 回答
0

用这个 :

$string = preg_replace('/\s+/', '', $string);
于 2011-08-03T21:32:32.587 回答