149,7 → 149,8 |
$sess = $id = array(); |
preg_match('/.*PHPSESSID=(\w+)/', $result, $sess); |
preg_match('/"id_utilisateur":"(\d+)"/', $result, $id); |
if(DEBUG) fwrite(STDERR, "curl \"".$URL ."\" : {$sess[1]} / {$id[1]}\n"); |
|
if(DEBUG) @fwrite(STDERR, "curl \"".$URL ."\" : {$sess[1]} / {$id[1]}\n"); |
if(isset($sess[1])) { |
define('COOKIE', $sess[1]); |
if(!defined('USER')) { |
202,6 → 203,38 |
return $result; |
} |
|
function importXLS($d) { |
$URL = DOMAIN . '/jrest/ImportXLS'; |
if(!is_file($d)) return FALSE; |
exec("csvtool -o /tmp/a.csv col 1- $d"); |
exec(__DIR__ . "/bin/csv2xls -v 0 -f -o /tmp/a /tmp/a.csv &>/dev/null"); |
if(DEBUG) fwrite(STDERR, |
"csvtool -o /tmp/a.csv col 1- $d;\n" . |
__DIR__ . "/bin/csv2xls -v 0 -f -o /tmp/a /tmp/a.csv\n"); |
$d = "/tmp/a.xls"; |
if(!is_file($d)) { die('error: ' . __FILE__ . ':' . __LINE__); } |
|
$ch = curl_init(); |
|
// curl does not support setting filename="X.csv";type=application/octet-stream' |
// with plain POST variables |
|
curl_setopt($ch,CURLOPT_URL, $URL); |
curl_setopt($ch,CURLOPT_POSTFIELDS, array( |
'upload' => '@' . $d . ';filename=test.xls', |
'utilisateur' => USER |
)); |
|
curl_setopt($ch,CURLOPT_RETURNTRANSFER, TRUE); |
|
if(DEBUG) fwrite(STDERR, "curl -F \"upload=@$d;filename=test.xls\" -F utilisateur=" . USER . " \"$URL\"\n"); |
|
//execute post |
$result = curl_exec($ch); |
curl_close($ch); |
return $result; |
} |
|
function export($cols = "standard,avance") { |
if(!defined('COOKIE')) return FALSE; |
|
214,9 → 247,9 |
curl_setopt($ch,CURLOPT_URL, $URL); |
curl_setopt($ch,CURLOPT_COOKIE, 'PHPSESSID=' . COOKIE); |
|
curl_setopt($ch,CURLOPT_RETURNTRANSFER, TRUE); |
|
if(DEBUG) fwrite(STDERR, "curl -b PHPSESSID=" . COOKIE . ' "' . $URL ."\"\n"); |
|
curl_setopt($ch,CURLOPT_RETURNTRANSFER, TRUE); |
//execute post |
$result = curl_exec($ch); |
curl_close($ch); |
223,6 → 256,46 |
return $result; |
} |
|
function exportXLS($cols = "standard,avance") { |
if(!defined('COOKIE')) return FALSE; |
|
$file = "/tmp/b.xls"; |
|
$URL = DOMAIN . '/jrest/CelWidgetExport/export?'; |
$URL .= http_build_query(array('colonnes' => $cols, |
'id_utilisateur' => USER, |
'format' => 'xls')); |
$ch = curl_init(); |
|
curl_setopt($ch,CURLOPT_URL, $URL); |
curl_setopt($ch,CURLOPT_COOKIE, 'PHPSESSID=' . COOKIE); |
|
$fh = fopen($file, 'w'); |
curl_setopt($ch,CURLOPT_FILE, $fh); |
|
if(DEBUG) fwrite(STDERR, "curl -o $file -b PHPSESSID=" . COOKIE . ' "' . $URL ."\"\n"); |
//execute post |
curl_exec($ch); |
|
fflush($fh); |
fclose($fh); |
curl_close($ch); |
|
// if(DEBUG) fwrite(STDERR, "xls2csv $file\n"); |
// exec("xls2csv $file", $result, $ret); |
// return implode("\n", $result); |
if(DEBUG) fwrite(STDERR, __DIR__ . "/bin/xls2csv-separate-sheets.pl -i $file\n"); |
exec(__DIR__ . "/bin/xls2csv-separate-sheets.pl -i $file &>/dev/null", $result, $ret); |
$newfile = substr($file, 0, -4) . '-Liste' . '.csv'; |
|
// because xls2csv-separate-sheets.pl does latin9 |
if(DEBUG) fwrite(STDERR, "iconv -f latin9 -t utf8 $newfile >| /tmp/.x; mv -f /tmp/.x $newfile\n"); |
exec("iconv -f latin9 -t utf8 -o /tmp/.x $newfile; mv -f /tmp/.x $newfile"); |
if($ret) die('error: ' . __FILE__ . ':' . __LINE__); |
|
return file_get_contents($newfile); |
} |
|
function getCSV_line($csv, $line) { |
$line = max(0, intval($line - 1)); // -1 à cause du header |
|
235,6 → 308,10 |
$l = fgetcsv($out); |
fclose($out); |
if(!$l) return FALSE; |
// xls2csv-separate-sheets.pl supprime les trailing champs vides |
if(count($l) != count($head)) { |
$l += array_fill(count($l), count($head) - count($l), ""); |
} |
return array_combine($head, $l); |
} |
|