我遇到的问题是删除空格。 我尝试了几种不同的方法,但没有一种方法可以删除它们。 我有一个下拉菜单,里面有空格,所以所有时间都排成一行,以便客户轻松理解。它来自下面的$ 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
答案 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);