Importaciones desde excel en PHP: str_getcsv VS fgetcsv

Importaciones desde excel en PHP: str_getcsv VS fgetcsv

5 de noviembre 2018

Seguramente alguna vez hemos tenido la necesidad de importar el contenido de un archivo Excel, normalmente en formato CSV, a nuestra base de datos. Dependiendo del tamaño del mismo, esta tarea puede convertirse en agotadora si pensamos hacerlo manualmente. Por eso vamos a ver un par de funciones PHP que nos permitirán hacerlo automáticamente de una manera mucho más cómoda:

array str_getcsv(string $input[, string $delimiter]])

// Convierte un csv a un array
$lines = file($filename);

foreach($lines as $line) {
	$values = str_getcsv($line, $delimiter, $enclosure, $escape);
	if(!$header) $header = $values;
	else $data[] = array_combine($header, $values);
}

array fgetcsv(resource $handle[, int $length[, string $delimiter]])

// Obtenemos linea por linea del csv apuntando al siguiente cada vez 
if (($handle = fopen($file, "r")) === FALSE) return;
while (($cols = fgetcsv($handle, 1000, "\t")) !== FALSE) {
	foreach( $cols as $key => $val ) {
		$cols[$key] = trim( $cols[$key] );
		$cols[$key] = iconv('UCS-2', 'UTF-8', $cols[$key]."\0") ;
		$cols[$key] = str_replace('""', '"', $cols[$key]);
		$cols[$key] = preg_replace("/^\"(.*)\"$/sim", "$1", $cols[$key]);
	}
	echo print_r($cols, 1);
}

Publicado por Joaquín Rúa

Categorías: PHP, Programación

Etiquetas: ,

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio web utiliza cookies, si continúas navegando estás dando tu consentimiento. Consulta nuestra política de cookies y de privacidad.

ACEPTAR
Aviso de cookies