2011-11-14 12 views
0

私はAPIを使用しています。処理するAPIのデータを送信する前に、データをフォーマットする必要があります 5列のCSVファイルにデータがあります 今、私はcsvファイルを開き、最後の列を除く各列の間にコンマでフィールドを結合したいと思っています。私はほぼparsecsvを使用してCSVを解析して、データを取得し、各フィールドの値の後ろに "、"を追加しましたが、今は削除する必要がある最後のカンマが1つあります。最後のものを削除してくださいが、正しく機能していません。すべてのカンマを削除しています。どうぞご覧ください。PHPはcsvと実行するレコードを制限します

foreach ($csv->data as $key => $row){ 
    foreach ($row as $value) { 
    $output = "$value, "; 
     //echo $output; 
    $final = substr($output, 0, -2); 
    echo $final."\n"; 
    } 
} 

私は他の質問がありますが、私はいくつか考えていますが、これがうまくいくかどうかはわかりません。このAPIは一度に100個のレコードしか受け入れることができないので、処理を完了するためにスクリプトを何度も実行する必要があります。どのようにこれを行うことができますか?私は最初にcsvから行数を取得し、ループ内で100を実行してから続行することを検討していますが、続行するには、100の後に停止してから続行する必要がありますか?あなたは$出力に代入しているとして、それを構築するためにあなたのコードは、間違っている

おかげ

+0

...いくつかの例を見ることができると私はそこから行くことができればme..itは素晴らしいことだアドバイスしてください各繰り返しで(追加するのではなく)。しかし、代わりにfputcsvを使用して見てみましょう。 'php:// temp'というファイルを開いて、一時ファイルをメモリ上で開くこともできます。 – slugonamission

答えて

0
$final .= substr($output, 0, -2); 
+0

確かに、これを試してみてください。レコードの数が異なるたびに5000レコードにすることができますので、私はAPIを50回呼び出す必要があります。翌日には6000レコードにすることができます。どうすればこの呼び出しを行うことができますか? – Jay

+0

それは不思議です、おそらく自分のAPIを書く必要があります。まず、csv文字列内のすべての要素の配列を作成する必要があります。$ array = explode( '、'、$ csvstring);より複雑なソリューションが必要な場合は、右の関連する質問を確認してください。 – Shomz

関連する問題