1
0
mirror of https://github.com/limosek/zaf-plugins.git synced 2024-11-01 08:17:19 +01:00
limosek-zaf-plugins/csv/get_rows.php

53 lines
1.1 KiB
PHP
Raw Normal View History

2017-01-27 16:05:02 +01:00
#!/usr/bin/php
<?php
2017-02-14 18:17:46 +01:00
require_once(__DIR__ . "/functions.inc.php");
2017-01-27 16:05:02 +01:00
2017-02-14 18:17:46 +01:00
$csv = getenv("csv");
$range = parse_colnum(getenv("columns"));
$rows = parse_colnum(getenv("rows"));
$rowsf = array_flip($rows);
$rangef = array_flip($range);
$head = getenv("header");
$delim = getenv("delimiter");
2017-01-27 16:05:02 +01:00
2017-02-14 18:17:46 +01:00
$c = fopen($csv, "r");
2017-01-27 16:05:02 +01:00
2017-02-14 18:17:46 +01:00
$header = Array();
$i = 1;
2017-01-27 16:05:02 +01:00
if ($head) {
2017-02-14 18:17:46 +01:00
$h = fgetcsv($c, false, $delim);
foreach ($h as $val) {
$header[$i] = $val;
$i++;
}
2017-01-27 16:05:02 +01:00
} else {
2017-02-14 18:17:46 +01:00
foreach ($range as $r) {
$header[$i] = sprintf("FIELD%d", $i + 1);
$i++;
}
2017-01-27 16:05:02 +01:00
}
json_init();
2017-02-14 18:17:46 +01:00
$line = 0;
$last = end($range);
$lastrow = max($rows);
$numrows = intval(exec("wc -l '$csv'"));
while ($row = fgetcsv($c, false, $delim)) {
$line++;
if (!array_key_exists($line, $rowsf))
continue;
json_row();
json_column("ROW", "$line");
foreach ($range as $col) {
json_column("COLUMN$col", $header[$col]);
json_column("VALUE$col", addslashes($row[$col - 1]), $last == $col);
}
echo feof($c);
json_row_end(feof($c) || $line == $lastrow || $line == $numrows-1);
2017-01-27 16:05:02 +01:00
}
json_end();
fclose($c);