{"id":4321,"date":"2012-08-29T13:14:17","date_gmt":"2012-08-29T13:14:17","guid":{"rendered":"https:\/\/www.jose-aguilar.com\/blog\/?p=4321"},"modified":"2019-04-08T10:14:26","modified_gmt":"2019-04-08T10:14:26","slug":"exportador-importador-csv","status":"publish","type":"post","link":"https:\/\/www.jose-aguilar.com\/blog\/exportador-importador-csv\/","title":{"rendered":"Exportador e Importador CSV"},"content":{"rendered":"<p><a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/08\/csv.jpeg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft  wp-image-4326\" title=\"csv\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/08\/csv.jpeg\" alt=\"\" width=\"95\" height=\"95\" srcset=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/08\/csv.jpeg 225w, https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/08\/csv-150x150.jpeg 150w, https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/08\/csv-80x80.jpeg 80w, https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/08\/csv-180x180.jpeg 180w\" sizes=\"auto, (max-width: 95px) 100vw, 95px\" \/><\/a>En muchas ocasiones cuando trabajamos con aplicaciones Web programadas a medida que se alimentan de bases de datos no es f\u00e1cil para los usuarios o clientes actualizar su contenido si no se dispone de una administraci\u00f3n exclusiva para ello.<\/p>\n<p>En este art\u00edculo vamos a ver o aprender como programar un importador\/exportador de la base de datos a un archivo .csv y viceversa con PHP.<\/p>\n<p>Lo vamos a ver mediante un ejemplo en el cual vamos a querer importar o exportar los siguientes campos: id, nombre, apellidos, email y puntos.<\/p>\n<p>Necesitaremos crear una base de datos y dentro una tabla con el nombre de \u00abusuarios\u00bb por ejemplo a\u00f1adi\u00e9ndole estos campos. Podemos ver una visualizaci\u00f3n de la tabla en PHPMyAdmin que necesitaremos en este ejemplo:<\/p>\n<p><a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/08\/sql.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-4328\" title=\"sql\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/08\/sql.png\" alt=\"\" width=\"142\" height=\"157\" \/><\/a><\/p>\n<p>Una vez tengamos ubicada nuestra tabla en una base de datos podemos empezar a programar la aplicaci\u00f3n. En la siguiente imagen vamos a ver como quedar\u00e1 la aplicaci\u00f3n visualmente.<\/p>\n<p><a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/08\/import-export-csv.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-4325\" title=\"import-export-csv\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/08\/import-export-csv.png\" alt=\"\" width=\"564\" height=\"461\" srcset=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/08\/import-export-csv.png 564w, https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/08\/import-export-csv-300x245.png 300w\" sizes=\"auto, (max-width: 564px) 100vw, 564px\" \/><\/a>Tal y como vemos en la imagen, la aplicaci\u00f3n o m\u00f3dulo contiene 3 partes bien diferenciadas. Por un lado, tenemos el importador del archivo .csv el cual espera que se selecciona del PC y tras pulsar en el bot\u00f3n \u00abupload\u00bb proceder a realizar la importaci\u00f3n a la base de datos.<\/p>\n<p>En segundo lugar mostramos un bot\u00f3n para obtener una exportaci\u00f3n de la base de datos al archivo .csv. En este caso, generamos el archivo .csv con los datos deseados.<\/p>\n<p>Y por \u00faltimo, mostramos una tabla con la informaci\u00f3n de los usuarios que hay actualmente en la base de datos.<\/p>\n<p>Para disponer de este importador\/exportador PHP necesitaremos crear un archivo .php donde en el &lt;body&gt; vamos a implantar toda esta estructura HTML. Tendremos un contenedor centro con 3 fieldsets.<\/p>\n<p>En el primer fieldset tendremos el importador:<\/p>\n<pre>&lt;fieldset&gt;\r\n\u00a0\u00a0 \u00a0&lt;legend&gt;Importador de usuarios&lt;\/legend&gt;\r\n\u00a0\u00a0\u00a0 &lt;?php if (!empty($message_import)) echo $message_import; ?&gt;\r\n\u00a0\u00a0\u00a0 &lt;form enctype=\"multipart\/form-data\" method=\"POST\" action=\"index.php\"&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;label&gt;Selecciona un archivo .csv &lt;\/label&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;input type=\"file\" name=\"file\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;input type=\"submit\" value=\"Upload\" name=\"submitFileUpload\"&gt;\r\n\u00a0\u00a0\u00a0 &lt;\/form&gt;\r\n&lt;\/fieldset&gt;<\/pre>\n<p>En el segundo fieldset el exportador:<\/p>\n<pre>&lt;fieldset&gt;\r\n\u00a0\u00a0 \u00a0&lt;legend&gt;Exportar de Usuarios&lt;\/legend&gt;\r\n\u00a0\u00a0 \u00a0&lt;form method=\"post\" action=\"index.php\"&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;input type=\"submit\" value=\"Export .CSV file\" name=\"submitExport\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;?php if (!empty($message_export)) echo $message_export; ?&gt;\r\n\u00a0\u00a0\u00a0 &lt;\/form&gt;\r\n&lt;\/fieldset&gt;<\/pre>\n<p>Y en el tercer fieldset la tabla que muestra la informaci\u00f3n disponible o almacenda actualmente:<\/p>\n<pre>&lt;fieldset&gt;\r\n\u00a0\u00a0 \u00a0&lt;legend&gt;Usuarios registrados&lt;\/legend&gt;\r\n\u00a0\u00a0\u00a0 &lt;table width=\"490px\" cellpadding=\"0\" cellspacing=\"5\"&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;tr&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;td&gt;ID&lt;\/td&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;td&gt;Nombre&lt;\/td&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;td&gt;Apellido&lt;\/td&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;td&gt;Email&lt;\/td&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;td align=\"right\"&gt;Puntos&lt;\/td&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/tr&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;?php\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$result = $conexion-&gt;query(\"SELECT `id_user`, `name`, `lastname`, `email`, `points` FROM `TU_TABLA` ORDER BY points DESC\");\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if ($result-&gt;num_rows &gt; 0) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0while ($row_users = $result-&gt;fetch_assoc()) { \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0echo '&lt;tr&gt;';\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0echo '&lt;td&gt;'.$row_users['id_user'].'&lt;\/td&gt;';\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0echo '&lt;td&gt;'.$row_users['name'].'&lt;\/td&gt;';\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0echo '&lt;td&gt;'.$row_users['lastname'].'&lt;\/td&gt;';\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0echo '&lt;td&gt;'.$row_users['email'].'&lt;\/td&gt;';\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0echo '&lt;td align=\"right\"&gt;'.$row_users['points'].'&lt;\/td&gt;';\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0echo '&lt;\/tr&gt;';\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0?&gt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0\u00a0 &lt;\/table&gt;\r\n&lt;\/fieldset&gt;<\/pre>\n<p>Ahora, por encima de cualquier etiqueta HTML a\u00f1adiremos las tags de c\u00f3digo PHP \u00ab&lt;?php &#8230; ?&gt;\u00bb y desarrollaremos all\u00ed mismo el c\u00f3digo que controlar\u00e1 la importaci\u00f3n y la exportaci\u00f3n.<\/p>\n<p>Lo primero que haremos ser\u00e1 conectar con la base de datos utilizando para ello una clase que nos facilita PHP (msqli) que nos servir\u00e1 tambi\u00e9n para generar query&#8217;s.<\/p>\n<pre>$conexion = new mysqli(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD, DB_DATABASE);<\/pre>\n<p>El c\u00f3digo que controlar\u00e1 la exportaci\u00f3n ser\u00e1 el siguiente:<\/p>\n<pre>if(isset($_POST['submitExport'])) {\r\n\r\n\u00a0\u00a0 \u00a0$fp = fopen(\"import\/users.csv\",\"w\");\r\n\u00a0\u00a0 \u00a0$separador = \";\";\r\n\r\n\u00a0\u00a0 \u00a0$linea = 'id_user'.$separador.'name'.$separador.'lastname'.$separador.'email'.$separador.'points'.\"\\n\"; \r\n\u00a0\u00a0 \u00a0fwrite($fp, $linea);\r\n\r\n\u00a0\u00a0 \u00a0$result = $conexion-&gt;query(\"SELECT `id_user`, `name`, `lastname`, `email`, `points` FROM `TU_TABLA` ORDER BY points DESC\");\r\n\u00a0\u00a0 \u00a0if ($result-&gt;num_rows &gt; 0) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0while ($row_users = $result-&gt;fetch_assoc()) {\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$linea = $row_users['id_user'].$separador.$row_users['name'].$separador.$row_users['lastname'].$separador.$row_users['email'].$separador.$row_users['points'].\"\\n\"; \r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0fwrite($fp, $linea);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0$message_export = '&lt;p&gt;&lt;a href=\"import\/users.csv\"&gt;&lt;b&gt;Ver usuarios .csv&lt;\/b&gt;&lt;\/a&gt;&lt;\/p&gt;';\r\n\r\n\u00a0\u00a0 \u00a0fclose($fp);\u00a0\u00a0 \u00a0\r\n}<\/pre>\n<p>En este caso, si pulsamos en el bot\u00f3n de exportaci\u00f3n procedemos a abrir un archivo en modo escritura el cual vamos escribiendo linea a linea el contenido que tenemos en la tabla de la base de datos y al finalizar mostramos un link para acceder al archivo generado.<\/p>\n<p>Y el c\u00f3digo que controla la importaci\u00f3n es el siguiente:<\/p>\n<pre>if (isset($_POST['submitFileUpload'])) {\r\n\r\n\u00a0\u00a0 \u00a0$file_import = 'import\/'.$_FILES['file']['name'];\r\n\r\n\u00a0\u00a0 \u00a0if ($_FILES[\"file\"][\"type\"] == \"text\/comma-separated-values\") {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (@move_uploaded_file($_FILES['file']['tmp_name'], $file_import)) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$fp = fopen($file_import, 'r');\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$contador = 0;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$users_edited = 0;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$users_added = 0;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0while (($data = fgetcsv($fp, 9999, \";\")) !== FALSE) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if ($contador &gt; 0) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (empty($data[0])) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$insert = \"INSERT INTO `users` (`name`, `lastname`, `email`, `points`) \r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0VALUES ('\".$data[1].\"', '\".$data[2].\"', '\".$data[3].\"', \".$data[4].\")\";\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$conexion-&gt;query($insert);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$users_added++;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0else {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$update = \"UPDATE `users` SET `name`='\".$data[1].\"', `lastname`='\".$data[2].\"', `email`='\".$data[3].\"', `points`=\".$data[4].\" WHERE id_user=\".$data[0];\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$conexion-&gt;query($update);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$users_edited++;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$contador++;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$message_import = '&lt;p&gt;La importacion se ha realizado con exito!&lt;br\/&gt;Se han actualizado '.$users_edited.' registros.&lt;br\/&gt;Se han insertar '.$users_added.' usuarios nuevos.&lt;\/p&gt;';\r\n\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0else {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$message_import = '&lt;p&gt;El archivo subido no es correcto!&lt;\/p&gt;';\r\n\u00a0\u00a0 \u00a0}\r\n}<\/pre>\n<p>La importaci\u00f3n es algo m\u00e1s compleja pero si se mira con detalle ver\u00e1s que no es nada del otro mundo. En este caso, si se quiere realizar una importaci\u00f3n del archivo .csv a la base de datos, obtenemos el archivo que se quiere subir y comprobamos que sea tipo .csv. De este modo, cualquier otro archivo que se intente subir ser\u00e1 denegado.<\/p>\n<p>Si se trata de un archivo .csv se procede a subir el archivo al servidor con la funci\u00f3n PHP \u00abmove_uploaded_file()\u00bb, lo abrimos y lo recorremos leyendo su contenido con la funci\u00f3n especial solo para archivos .csv \u00abfgetcsv()\u00bb.<\/p>\n<p>F\u00edjate que dentro del bucle estamos realizando una comprobaci\u00f3n importante que representa las 2 formas de importar. Podremos importar para machacar o modificar y para a\u00f1adir nuevos. Entonces, si queremos a\u00f1adir nuevos usuarios conviene dejar vac\u00edo el primer campo del .csv, la id para que el script lo interprete con nuevo usuario. Los que tengan id y exista en la tabla \u00abTU_TABLA\u00bb ser\u00e1n actualizados en la base de datos.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En muchas ocasiones cuando trabajamos con aplicaciones Web programadas a medida que se alimentan de bases de datos no es f\u00e1cil para los usuarios o clientes actualizar su contenido si no se dispone de una administraci\u00f3n exclusiva para ello. En este art\u00edculo vamos a ver o aprender como programar un importador\/exportador de la base de [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4326,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[103],"class_list":["post-4321","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php","tag-archivos"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Exportador e Importador CSV - Jose Aguilar Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Exportador e Importador CSV - Jose Aguilar Blog\" \/>\n<meta property=\"og:description\" content=\"En muchas ocasiones cuando trabajamos con aplicaciones Web programadas a medida que se alimentan de bases de datos no es f\u00e1cil para los usuarios o clientes actualizar su contenido si no se dispone de una administraci\u00f3n exclusiva para ello. En este art\u00edculo vamos a ver o aprender como programar un importador\/exportador de la base de [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.jose-aguilar.com\/blog\/exportador-importador-csv\/\" \/>\n<meta property=\"og:site_name\" content=\"Jose Aguilar Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/joseaguilarblog\" \/>\n<meta property=\"article:published_time\" content=\"2012-08-29T13:14:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-04-08T10:14:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/08\/csv.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"225\" \/>\n\t<meta property=\"og:image:height\" content=\"225\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jose Aguilar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:site\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jose Aguilar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/exportador-importador-csv\/\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/exportador-importador-csv\/\",\"name\":\"Exportador e Importador CSV - Jose Aguilar Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/exportador-importador-csv\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/exportador-importador-csv\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/08\/csv.jpeg\",\"datePublished\":\"2012-08-29T13:14:17+00:00\",\"dateModified\":\"2019-04-08T10:14:26+00:00\",\"author\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/exportador-importador-csv\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.jose-aguilar.com\/blog\/exportador-importador-csv\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/exportador-importador-csv\/#primaryimage\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/08\/csv.jpeg\",\"contentUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/08\/csv.jpeg\",\"width\":225,\"height\":225},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/exportador-importador-csv\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/www.jose-aguilar.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Exportador e Importador CSV\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/\",\"name\":\"Jose Aguilar Blog\",\"description\":\"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\",\"name\":\"Jose Aguilar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"caption\":\"Jose Aguilar\"},\"description\":\"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.\",\"sameAs\":[\"https:\/\/plus.google.com\/114357189801512615537\"],\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Exportador e Importador CSV - Jose Aguilar Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"es_ES","og_type":"article","og_title":"Exportador e Importador CSV - Jose Aguilar Blog","og_description":"En muchas ocasiones cuando trabajamos con aplicaciones Web programadas a medida que se alimentan de bases de datos no es f\u00e1cil para los usuarios o clientes actualizar su contenido si no se dispone de una administraci\u00f3n exclusiva para ello. En este art\u00edculo vamos a ver o aprender como programar un importador\/exportador de la base de [&hellip;]","og_url":"https:\/\/www.jose-aguilar.com\/blog\/exportador-importador-csv\/","og_site_name":"Jose Aguilar Blog","article_publisher":"https:\/\/www.facebook.com\/joseaguilarblog","article_published_time":"2012-08-29T13:14:17+00:00","article_modified_time":"2019-04-08T10:14:26+00:00","og_image":[{"width":225,"height":225,"url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/08\/csv.jpeg","type":"image\/jpeg"}],"author":"Jose Aguilar","twitter_card":"summary_large_image","twitter_creator":"@JoseAguilarBlog","twitter_site":"@JoseAguilarBlog","twitter_misc":{"Escrito por":"Jose Aguilar","Tiempo de lectura":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.jose-aguilar.com\/blog\/exportador-importador-csv\/","url":"https:\/\/www.jose-aguilar.com\/blog\/exportador-importador-csv\/","name":"Exportador e Importador CSV - Jose Aguilar Blog","isPartOf":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/exportador-importador-csv\/#primaryimage"},"image":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/exportador-importador-csv\/#primaryimage"},"thumbnailUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/08\/csv.jpeg","datePublished":"2012-08-29T13:14:17+00:00","dateModified":"2019-04-08T10:14:26+00:00","author":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11"},"breadcrumb":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/exportador-importador-csv\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.jose-aguilar.com\/blog\/exportador-importador-csv\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/exportador-importador-csv\/#primaryimage","url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/08\/csv.jpeg","contentUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/08\/csv.jpeg","width":225,"height":225},{"@type":"BreadcrumbList","@id":"https:\/\/www.jose-aguilar.com\/blog\/exportador-importador-csv\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.jose-aguilar.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Exportador e Importador CSV"}]},{"@type":"WebSite","@id":"https:\/\/www.jose-aguilar.com\/blog\/#website","url":"https:\/\/www.jose-aguilar.com\/blog\/","name":"Jose Aguilar Blog","description":"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11","name":"Jose Aguilar","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","caption":"Jose Aguilar"},"description":"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.","sameAs":["https:\/\/plus.google.com\/114357189801512615537"],"url":"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/"}]}},"_links":{"self":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/4321","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/comments?post=4321"}],"version-history":[{"count":0,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/4321\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media\/4326"}],"wp:attachment":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media?parent=4321"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/categories?post=4321"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/tags?post=4321"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}