Herramientas de usuario

Herramientas del sitio


informatica:programacion:php:snippets:ficheros

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
informatica:programacion:php:snippets:ficheros [2021/02/03 15:56] – [Escritura] tempwininformatica:programacion:php:snippets:ficheros [2022/12/26 16:32] (actual) tempwin
Línea 1: Línea 1:
 ====== PHP Snippets: Ficheros ====== ====== PHP Snippets: Ficheros ======
 +
 +===== Contar líneas =====
 +
 +Para contar las líneas de un fichero de texto:
 +
 +<code php>
 +$file = new \SplFileObject('file.extension', 'r');
 +$file->seek(PHP_INT_MAX);
 +
 +echo $file->key(); // Número de líneas
 +</code>
  
 ===== CSV ===== ===== CSV =====
 +
 +  * [[https://datatracker.ietf.org/doc/html/rfc4180|RFC4180: especificación del formato CSV]]
  
 ==== Escritura ==== ==== Escritura ====
Línea 8: Línea 21:
  
 <code php> <code php>
-$fichero = __DIR__ . DIRECTORY_SEPARATOR . "procesos_voa_empresa.csv";+$fichero = __DIR__ . DIRECTORY_SEPARATOR . "mi_fichero.csv";
 $fp = fopen($fichero, "w"); $fp = fopen($fichero, "w");
  
 $cabecera = [ $cabecera = [
-    columna1, +    "columna1"
-    columna2, +    "columna2"
-    columna3+    "columna3"
 ]; ];
  
Línea 30: Línea 43:
 </code> </code>
  
-El fichero resultante tendrá los campos separados por '','', utiliza las comillas como cierre de campos con espacios. Ejemplo:<+El fichero resultante tendrá los campos separados por '','', utiliza las comillas como cierre de campos con espacios. Ejemplo:
  
 <code> <code>
Línea 39: Línea 52:
 </code> </code>
  
-=== Lectura ===+==== Lectura ====
  
 <code php> <code php>
 $fichero = __DIR__ . DIRECTORY_SEPARATOR . "mi_fichero.csv"; $fichero = __DIR__ . DIRECTORY_SEPARATOR . "mi_fichero.csv";
-$fp = fopen($fichero, "w");+$fp = fopen($fichero, "r");
  
 while (($fila = fgetcsv($fp, 1000, $delimitador)) !== false) { while (($fila = fgetcsv($fp, 1000, $delimitador)) !== false) {
-    //if (array(null) !== $fila) { // ignore blank lines 
     $datos[] = $fila;     $datos[] = $fila;
 } }
Línea 58: Línea 70:
 while (($emapData = fgetcsv($file, 10000, ",")) !== FALSE) { while (($emapData = fgetcsv($file, 10000, ",")) !== FALSE) {
     // código     // código
 +}
 +</code>
 +
 +Si queremos evitar las líneas en blanco:
 +
 +<code php>
 +$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;
 +    }
 } }
 </code> </code>
informatica/programacion/php/snippets/ficheros.1612364197.txt.gz · Última modificación: por tempwin