1

这是我的代码

$data['rate_change_with'] = iconv('UTF-8', 'ISO-8859-15//TRANSLIT', $data['rate_change_with']);
$rate_change_with_index_array = preg_split('/\s+/', $data['rate_change_with']);

在 Windows 机器上它工作得很好。但是在 ubuntu 12.04 上它会中断。preg_split 没有效果。$data['rate_change_with'] 类似于

 3.3 (spaces/tabs)  4.5 (spaces/tabs) 6.5

请帮忙!

谢谢

编辑:空格和制表符是“不同”类型的空格/换行符混合,我不确定是什么。Edit2:不确定是否有帮助,但这是调试器中目标的屏幕截图:http: //i.imgur.com/Mwria.jpg

Edit3:实际样本:http ://dl.dropbox.com/u/7998366/de.html 。最右边的列是问题

Edit4:更改 为空格没有帮助!我究竟做错了什么 ??

4

1 回答 1

0

解决方案:

$data['rate_change_with'] = ereg_replace("[^A-Za-z0-9\-\./]", " ", $data['rate_change_with']) ;
$rate_change_with_index_array = preg_split('/\s+/', $data['rate_change_with']);

基本上我无法弄清楚导致问题的存在的字符,所以上面只是删除了除白名单之外的所有字符,从而消除了那里存在的任何奇怪字符。

于 2012-07-03T16:53:02.637 回答