+/**
+ * Agrega una entrada al final de un archivo csv.
+ *
+ * @return bool false si hay error.
+ */
+function fappendcsv($filename, $fields, $delim = ',')
+{
+ if (($f = fopen($filename, 'a')) === false) return false; // error
+ fputcsv($f, $fields, $delim);
+ fclose($f);
+ return true;
+}
+
+/**
+ * Obtiene un archivo csv como array de arrays
+ *
+ * @return array de array (false si hubo error).
+ */
+function fgetallcsv($filename, $delim = ',')
+{
+ if (($f = fopen($filename, 'r')) === false) return false;
+ $data = array();
+ while ($row = fgetcsv($f, 4096, $delim)) $data[] = $row;
+ fclose($f);
+ return $data;
+}
+
+/**
+ * Obtiene una fila de un archivo cvs buscando según una clave.
+ * Se busca la fila cuyo campo $id coincida con $what.
+ *
+ * @return array fila buscada o false si hubo error o no está.
+ */
+function fsearchcsv($filename, $what, $id = 0, $delim = ',')
+{
+ if (($f = fopen($filename, 'r')) === false) return false;
+ while (!feof($f))
+ {
+ $d = fgetcsv($f, 4096);
+ if ($d[$id] == $what)
+ {
+ fclose($f);
+ return $d;
+ }
+ }
+ fclose($f);
+ return false;
+}
+