2012-01-07 17 views
0

私のスクリプトは完璧に機能していますが、.csv形式を破棄してカンマを維持する方法を解決できません。カンマを.csv形式で維持する

これを動作させるための唯一の方法は、preg_replace()でカンマを取り除くことです。しかし、これでは十分ではありません。私はいくつかの異なるハックを無駄にしようとしました。

foreach ($rows[$i] as $value) { 
    $insert .= preg_replace("/,/", "", $value) . ","; 
    //$insert .= mysql_real_escape_string($value) . ","; 
} 
+0

なぜ、それは適切ではありませんか?もちろん、正規表現の代わりに 'str_replace()'を使うこともできますが、あなたの正規表現は使えるはずです。 「適切ではない」は非常に多くの状況をカバーする。どうか明らかにしてください。 – Bojangles

+1

'fputcsv'でcvsファイルを作成し、' fgetcsv'でそれらを読むと、この問題は起きません... –

+1

もちろん、それは十分ではありません...あなたのコーヒーをかき混ぜるためにナッツクラッカーのセットを使用することは適切ではありません...ジョブに適切なツールを使用する... csvファイルを読み書きするためにfgetcsv()とfputcsv()を使用すると、ハックの解決策を必要とする問題は発生しません。 –

答えて

0

あなたは、あなたもあなたのCSV-行の部品の検証に構築することができ、この

foreach ($rows[$i] as $value) 
{ 
    $rowparts = explode(",",$value); 
    // Do some validation, i.e. columcount, string specfier an so on 
    $insert .= implode("; ", $rowparts) . "\r\n"; 
} 

だけの思考のようなものを試してみました:ここ

は、私が今持っているものです。

0

他のコメント者が指摘したように、この問題の正しい解決方法はfputcsvです。

あなたは本当にphp4を使用してはいけません。これは古くなっています。 4年間で更新されていません。

関連する問題