Taller > PHP > Manejo de archivos
Manejo de Archivos CSV en PHP
En este artículo, aprenderemos cómo trabajar con archivos CSV en PHP utilizando las funciones fgetcsv() y fputcsv(). Los archivos CSV son muy comunes para almacenar datos en formato tabular, como listas de empleados o inventarios.
PHP proporciona herramientas muy útiles para trabajar con estos archivos de forma fácil y eficiente. Veremos cómo leer datos de un archivo CSV y cómo escribir en un archivo CSV con ejemplos claros.
Función fgetcsv()
La función fgetcsv() permite leer un archivo CSV y convertir cada línea en un array de PHP.
Sintaxis:
fgetcsv(
resource $stream,
?int $length = null,
string $separator = ",",
string $enclosure = "\"",
string $escape = "\\"
): array|false
$stream: El archivo abierto en modo de lectura.
$separator: El carácter que separa los campos (por defecto, una coma).
$enclosure: El carácter que envuelve los campos, si es necesario.
$escape: El carácter usado para escapar otros caracteres.
La función retorna un array con los valores de cada fila del archivo o false si hay un error.
Ejemplo de Uso:
Supongamos que tenemos un archivo llamado datos.csv con la siguiente estructura:
ID,Nombre,Correo,Edad
1,Juan,juan@gmail.com,28
2,María,maria@hotmail.com,35
3,Carlos,carlos@yahoo.com,40
El siguiente código lee este archivo CSV y muestra los datos en una tabla HTML:
<?php
$filename = 'datos.csv';
$data = [];
// Abrir el archivo
$f = fopen($filename, 'r');
if ($f === false) {
die('No se pudo abrir el archivo ' . $filename);
}
// Leer cada línea del archivo CSV
while (($fila = fgetcsv($f)) !== false) {
$data[] = $fila;
}
// Cerrar el archivo
fclose($f);
// Mostrar los datos en una tabla HTML
echo "<table border='1'>";
foreach ($data as $fila) {
echo "<tr>";
foreach($fila as $valor) {
echo "<td>$valor</td>";
}
echo "</tr>";
}
echo "</table>";
?>
Salida esperada:
| ID | Nombre | Correo | Edad |
|---|---|---|---|
| 1 | Juan | juan@gmail.com | 28 |
| 2 | María | maria@hotmail.com | 35 |
| 3 | Carlos | carlos@yahoo.com | 40 |