X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=www%2Fecrire%2Finc%2Fcsv.php;fp=www%2Fecrire%2Finc%2Fcsv.php;h=2f52bfd283242674171eebe092a2e4266127eed3;hb=a33c2ba9d919664b3bb0f565f8e9a8b9d8530cdb;hp=0000000000000000000000000000000000000000;hpb=8945248b3d948385798d9aa355c70e7089aca2b3;p=lhc%2Fweb%2Fclavette_www.git
diff --git a/www/ecrire/inc/csv.php b/www/ecrire/inc/csv.php
new file mode 100644
index 0000000..2f52bfd
--- /dev/null
+++ b/www/ecrire/inc/csv.php
@@ -0,0 +1,90 @@
+ $pvirg)
+ { $sep = ','; $hs = ',';}
+ else { $sep = ';'; $hs = ';'; $virg = $pvirg;}
+ if ($tab > $virg) {$sep = "\t"; $hs = "\t";}
+
+ $t = preg_replace('/\r?\n/', "\n",
+ preg_replace('/[\r\n]+/', "\n", $t));
+ // un separateur suivi de 3 guillemets attention !
+ // attention au ; suceptible d'etre confondu avec un separateur
+ // on substitue un # et on remplacera a la fin
+ $t = preg_replace("/([\n$sep])\"\"\"/",'\\1""#',$t);
+ $t = str_replace('""','"#',$t);
+ preg_match_all('/"[^"]*"/', $t, $r);
+ foreach($r[0] as $cell)
+ $t = str_replace($cell,
+ str_replace($sep, $hs,
+ str_replace("\n", "
",
+ substr($cell,1,-1))),
+ $t);
+ list($entete, $corps) = explode("\n",$t,2);
+ $caption = '';
+ // sauter la ligne de tete formee seulement de separateurs
+ if (substr_count($entete, $sep) == strlen($entete)) {
+ list($entete, $corps) = explode("\n",$corps,2);
+ }
+ // si une seule colonne, en faire le titre
+ if (preg_match("/^([^$sep]+)$sep+\$/", $entete, $l)) {
+ $caption = "\n||" . $l[1] . "|";
+ list($entete, $corps) = explode("\n",$corps,2);
+ }
+ // si premiere colonne vide, le raccourci doit quand meme produire