2 // vim: set binary noeol et sw=4 sts=4 :
5 // Lucarella, Schein, Arena
7 // Creado: Leandro Lucarella (lun may 2 20:00:07 ART 2005)
11 if (!function_exists('fputcsv')) {
12 // Función basada en http://www.php.net/manual/en/function.fgetcsv.php
13 function fputcsv($fp, $fields, $delim = ',')
17 foreach ($fields as $field) {
18 // Cambia EOL por los de unix
19 $field = str_replace("\r\n", "\n", $field);
20 // Agrega 'quotes' de ser necesario
21 $d = ($delim == '/') ? '|' : '/';
22 if (preg_match("{$d}[{$delim}\"\n\r]{$d}", $field)) {
23 $field = '"' . str_replace('"', '""', $field) . '"';
25 // Prepara la línea a graba
26 $line .= $field . ((count($fields) > $i++) ? $delim : "\n");
28 // Devuelve lo mismo que fputs()
29 return fputs($fp, $line);
34 * Agrega una entrada al final de un archivo csv.
36 * @return bool false si hay error.
38 function fappendcsv($filename, $fields, $delim = ',')
40 if (($f = fopen($filename, 'a')) === false) return false; // error
41 fputcsv($f, $fields, $delim);
47 * Obtiene un archivo csv como array de arrays
49 * @return array de array (false si hubo error).
51 function fgetallcsv($filename, $delim = ',')
53 if (($f = fopen($filename, 'r')) === false) return false;
55 while (!feof($f)) $data[] = fgetcsv($f, 4096, $delim);
61 * Obtiene una fila de un archivo cvs buscando según una clave.
62 * Se busca la fila cuyo campo $id coincida con $what.
64 * @return array fila buscada o false si hubo error o no está.
66 function fsearchcsv($filename, $what, $id = 0, $delim = ',')
68 if (($f = fopen($filename, 'r')) === false) return false;
71 $d = fgetcsv($f, 4096);