Antes de comenzar a crear código, debemos tener en cuenta un par de conceptos los cuales nos ayudarán a entender cómo realizar una exportación dependiendo de nuesto servidor y nuestras necesidades. En este caso, podemos crear 2 tipos de exportaciones: La primera es guardar el archivo .txt a exportar en nuestro servidor para que luego el usuario lo descarge. La segunda es crear en archivo .txt de manera directa sin guardarlo en nuestro servidor para que el usuario lo descarge. El primer método se utiliza generalmente para archivos relativamente grandes y se debe tener en cuenta de tener los permisos necesarios habilitados en el servidor para poder crear archivos desde PHP, además de contar con espacio suficiente para ir almacenando los archivos que el usuario quiera descargar. El segundo método es utilizado para archivos ligeros pues al crearse de manera directa el archivo, si es que este es muy grande, el navegador podría dar algún error en la conexión o simplemente podría bloquearse la página antes de que el usuario pueda descargar el archivo.
Vamos a utilizar el primer método en este ejemplo pues resulta ser el más utilizado. La información que iremos a exportar la sacaremos de una base de datos MySQL desde PHP. En caso ustedes tengan su propia base de datos pueden utilizarla para probar, no obstante, podrán descargar la base de datos en un vínculo al final del tutorial.
Lo primero que haremos será crear un archivo PHP en blanco para la conexión a la base de datos. Dicho archivo debe contener lo siguiente (estaremos utilizando mysqli para la conexión):
Debemos cambiar los parámetros de conexión para que se adecuen a nuestra base de datos, es decir: el servidor, el usuario, password y el nombre de la base de datos. Cambiada esta configuración, ahora podemos empezar a programar el código que recuperará los datos de la base de datos y nos permitirá exportarlos a un archivo .txt en el formato que nosotros queramos.
Crearemos un nuevo archivo PHP con el nombre que queramos en el cual haremos referencia al archivo anterior de conexión a la base de datos. Debemos realizar una consulta a la tabla -tabla- para poder sacar la información. Luego de realizar dicha consulta iremos a guardar los resultados dentro de un arreglo PHP para su posterior uso. El código necesario es el siguiente:
Ahora que ya tenemos la información dentro de un arreglo PHP, empezaremos con la exportación. Para poder realizar la exportación debemos hacer uso de la función file_put_contents la cual nos permitirá guardar el contenido de un arreglo dentro de un archivo. El primer parámetro hará referencia al archivo y el segundo a la información a guardar. Es importante tener en cuenta la forma en que queremos que la información se exporta (por ejemplo, separarla por comas o por espacio). En este caso, vamos a probar separando por comas la información y cada ciudad separada por saltos de línea. El código es el siguiente:
Luego debemos modificar las cabeceras con PHP para que el archivo se pueda descargar de manera automática. Estas cabeceras a modificar son las siguientes:
Además, debemos notar que al poder elegir el formato en que la información será exportada, podemos convertir un simple archivo .txt en un archivo .csv para poder abrirlo con cualquier versión de Excel. En este ejemplo, únicamente faltaría agregarle una cabecera al arreglo para que pueda ser leido como un archivo .csv desde Excel. En caso quieran probar, lo primero que debemos hacer es agregar una cabecera al arreglo de la siguiente manera a modo que sirva como la cabecera del CSV:
Luego al momento de exportar debemos cambiar la extensión del archivo para que sea “.csv” en lugar de “.txt” de la siguiente manera:
Por último, el código resultante e integrado lo pueden obtener a continuación: