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 に答える