informatica:programacion:php:snippets:ficheros
Tabla de Contenidos
PHP Snippets: Ficheros
Contar líneas
Para contar las líneas de un fichero de texto:
$file = new \SplFileObject('file.extension', 'r'); $file->seek(PHP_INT_MAX); echo $file->key(); // Número de líneas
CSV
Escritura
En el siguiente ejemplo se utiliza la función fputcsv:
$fichero = __DIR__ . DIRECTORY_SEPARATOR . "mi_fichero.csv"; $fp = fopen($fichero, "w"); $cabecera = [ "columna1", "columna2", "columna3" ]; fputcsv($fp, $cabecera ); $registro = [ "valor1", "valor2", "valor3" ]; fputcsv($fp, $registro); fclose($fp);
El fichero resultante tendrá los campos separados por ,, utiliza las comillas como cierre de campos con espacios. Ejemplo:
campo1, campo2, campo3 Pepito, "Rodríguez Pérez", 18 Manolito, "Gafotas Verdes", 1 "José Fernando", Suárez, 30
Lectura
$fichero = __DIR__ . DIRECTORY_SEPARATOR . "mi_fichero.csv"; $fp = fopen($fichero, "r"); while (($fila = fgetcsv($fp, 1000, $delimitador)) !== false) { $datos[] = $fila; }
Si queremos saltarnos la primera línea (porque contiene la cabcera con los títulos, por ejemplo), basta con obtener la primera línea del fichero y no hacer nada:
// código fgetcsv($file, 10000, ","); while (($emapData = fgetcsv($file, 10000, ",")) !== FALSE) { // código }
Si queremos evitar las líneas en blanco:
$fichero = __DIR__ . DIRECTORY_SEPARATOR . "mi_fichero.csv"; $fp = fopen($fichero, "w"); while (($fila = fgetcsv($fp, 1000, $delimitador)) !== false) { // Ignoramos las líneas vacías if (array(null) !== $fila) { $datos[] = $fila; } }
Recursos
informatica/programacion/php/snippets/ficheros.txt · Última modificación: por tempwin
