Оператор
while($lines = fgetcsv($fp)) {
fgetcsv вернет одну строку в виде массива, содержащего элементы в строке;
Следовательно, следующее неверно и должно быть удалено, поскольку вы перебираете одну строку в CSV
for ($k = 0, $m = count($lines) - 1; $k < $m; $k++) {
Итак, после ревизии цикл чтения должен (я думаю) быть похожимthis:
$fp = fopen('db.csv','r') or die("can't open file");
$k=0;
while($lines = fgetcsv($fp)) {
$one[$k] = $lines[0];
$two[$k] = $lines[1];
$three[$k] = $lines[2];
$four[$k] = $lines[3];
$five[$k] = $lines[4];
$six[$k] = $lines[5];
$k++;
$countLines++;
}
После этого использования, например, print_r ($ one) для отладки для просмотра массивов.
Для вывода я в большой степени полагаюсь на догадки относительно того, что вы хотитедостигните, потому что вы выводите на db2.csv, но без запятых (для разделения).однако попробуйте что-то вроде следующего
/*
* Store data in file
*/
$fp = fopen('db2.csv', 'w') or die("can't open file");
fwrite($fp, $header);
/*
* Data for export
*/
for ($i = 0, $j = $countLines - 1; $i < $j; $i++) {
fprintf($fp, "%s %s %-3s %-30s %-30s %-30s\r\n", /* possibly add commas here? */
$one[$i], $two[$i], $three[$i],$four[$i], $five[$i], $six[$i]);
}