Explicación de hoja de cálculo para leer con PHP

Leer archivo de Excel con PHP y PHPSpreadSheet

Obtener contenido de hoja de cálculo con formato XLSX en PHP

Ya vimos cómo escribir a una hoja de cálculo usando PHPSpreadSheet; hoy veremos el proceso “inverso” y es leer el contenido de todo un documento de Excel.

Lo que haremos será leer todas las hojas (llamadas sheets) de un documento con extensión XLSX, así como iterar por todas las filas y leer cada celda de tres maneras:

  1. Valor crudo
  2. Valor formateado
  3. Valor calculado

Esta última manera permite calcular la fórmula en determinada columna y celda; pues si solamente obtenemos el valor crudo se mostrará la fórmula, no el resultado de la misma.

También vamos a ver cómo obtener la fila (es decir, el número, como 1) y la columna como letra (es decir, algo como A o B).

(más…)

Acesso prohibido a logs creados con PHP

Loguear errores y mensajes en PHP en archivo de texto con un logger

Crear un simple logger en PHP para depurar y escribir errores en archivo de texto

Depurar nuestro código de PHP es uno de los pasos más importantes de la programación. Una gran ayuda que tenemos a nuestra disposición son los logs o archivos de log.

Hoy veremos cómo escribir mensajes de error y depuración (o debug) en archivos de texto usando PHP sin usar librerías externas, únicamente funciones nativas y un poco de código al inicio de nuestro script.

Gracias a esto podremos escribir mensajes de información y también llevar un registro de errores sin mostrarlos al usuario, con fecha y hora de llamada así como el script de llamada.

Un ejemplo del log que vamos a crear (esto dependerá de tu app pero para que te des una idea) es este:

Veamos entonces cómo loguear con PHP, además de evitar mostrar los errores al usuario, asegurando nuestras aplicaciones web.

(más…)

Forzar descarga de archivo con PHP y encabezados HTTP

Forzar la descarga de cualquier archivo con PHP y readfile

Obligar descarga de un fichero sin importar su extensión

Cuando un navegador web visita un archivo que entiende, lo muestra. Por ejemplo, si encuentra un archivo con extensión .txt entonces lo sirve en lugar de mostrar el diálogo de descarga.

Pues hoy veremos cómo servir un archivo con PHP pero forzar su descarga sin importar la extensión. No importa si es un exe, html o txt, todo será forzado a descargarse.

Forzar descarga de archivo con PHP y encabezados HTTP

Forzar descarga de archivo con PHP y encabezados HTTP

Para esto usaremos la función readfile.

Este tutorial me recuerda al que muestra cómo proteger el acceso a imágenes con Apache y PHP.

(más…)

Unir o combinar archivos PDF con PHP y libmergepdf

Los documentos PDF son parte importante en el mundo digital. Gracias a ellos podemos tener acceso a la información en un formato unificado y entendible por la mayoría de sistemas operativos.

Hoy veremos cómo unir muchos documentos PDF con PHP. Es decir, podemos unir 2 o más PDF’s con PHP. Esta operación también se conoce como merge o como combinar múltiples PDF.

Combinar múltiples documentos PDF con PHP y libmergepdf

Combinar múltiples documentos PDF con PHP y libmergepdf

Aparte de ver cómo combinar o unir PDFs con PHP veremos 3 maneras de mostrar el documento final combinado: mostrar en el navegador, forzar su descarga o escribirlo en un nuevo archivo PDF.

(más…)

Adaptar proyecto de PHP a Composer

Composer se ha convertido en el gestor de dependencias más usado en PHP. Puede que nuestro proyecto de PHP existente no necesitara un gestor al inicio, pero ahora lo necesita. O tal vez necesitamos instalar una librería que usa composer.

Por ello es que hoy veremos cómo adaptar un proyecto normal de PHP a un proyecto gestionado por composer.

(más…)

Página web de parzibyte.me renovada

He renovado mi página principal y ahora es open source

Justo hoy he publicado mi página principal totalmente renovada y hecha por mí, además de que es totalmente open source (he puesto el repositorio en línea).

Ya era hora, pues no estaba mostrando mi portafolio y la última actualización fue en diciembre del 2017.

Página web de parzibyte.me renovada

Página web de parzibyte.me renovada

Voy a explicar en este post cómo fue la creación y las cosas que usé para crearla; además de exponer cómo hice para que cargara rápido y otras cosas.

(más…)

Sistema web para cotizaciones y presupuestos

Presentando un sistema web para hacer cotizaciones y presupuestos, gratuito y open source

Hoy vengo a presentar un software para realizar cotizaciones o presupuestos, el cual es totalmente gratuito de usar en la nube; así como open source. Es decir, aparte de que puedes usarlo en mi sitio, puedes descargarlo y modificarlo.

Sistema web para cotizaciones y presupuestos

Sistema web para cotizaciones y presupuestos

Características del software

No es la gran cosa, pero entre sus principales características encontramos las siguientes:

  • Realizar cotizaciones o presupuestos
  • Estimar el costo requerido, el cual se configura por cada servicio
  • Calcular tiempo requerido por cada servicio
  • Describir características y/o condiciones del trabajo
  • Agregar clientes para ligarlos a las cotizaciones
  • Imprimir la cotización o guardarla como PDF (esto depende del navegador la mayoría de veces)
  • Multiusuario: cualquier usuario puede registrarse y usarlo, así de simple. Eso sí, las cotizaciones, servicios y características son separadas por usuario
  • Totalmente open source
  • Escrito con PHP, utiliza PDO para interactuar con la base de datos
  • Base de datos MySQL
  • Lado del cliente con Vue.JS y Bootstrap
  • Mensaje de agradecimiento, presentación y pie totalmente configurables

Se me ocurre que puede servir tanto como para estudiantes que tienen que entregar un proyecto con PHP simple, así como para personas que necesitan un software como estos.

Voy a explicar cómo fue creado, en dónde se puede probar y también dónde se puede leer el código fuente.

(más…)

Leer archivo CSV con PHP

Leer archivo CSV con PHP y fgetcsv

En este post voy a explicar cómo podemos leer un archivo o fichero CSV (valores separados por coma) en el lenguaje de programación PHP. Para ello, se utiliza la función fgetcsv, la cual permite leer fila por fila como si se tratara de un arreglo.

Leer archivo CSV con PHP

Leer archivo CSV con PHP

Veremos los argumentos que recibe esta función, las formas de llamarla y cómo manejar los errores comunes.

(más…)

Codificar y decodificar JSON en PHP: todo lo que necesitas saber

PHP es un lenguaje del lado del servidor en donde se puede crear una API que se comunique a través de JSON, tanto para leer peticiones como para responder. Hoy veremos cómo codificar y decodificar JSON en PHP con funciones nativas.

Por defecto, PHP tiene algunos errores al codificar en JSON, ya que a veces algunos números no son codificados como números, sino como cadenas; por eso veremos cómo evitar eso y personalizar la salida gracias a las constantes JSON de PHP.

Trabajando con JSON en PHP

Trabajando con JSON en PHP

También veremos cómo manejar los errores; limitar la profundidad de los objetos y otras cosas muy importantes al trabajar con JSON en el lenguaje PHP.

Con PHP y JSON podemos codificar cualquier tipo de variable; no importa si es un booleano, entero, cadena o flotante; todo se codifica correctamente. Lo mismo es para los arreglos u objetos; u objetos con arreglos en su interior.

(más…)

Correo electrónico recibido en Gmail

Enviar correo electrónico con HTML desde PHP

En este post se explica cómo enviar un correo electrónico, desde PHP, a cualquier dirección de correo electrónico. Por ejemplo, enviar desde PHP un mail a tu_usuario@gmail.com o cualquier dominio, así como si lo enviáramos a mano.

Correo electrónico recibido en Gmail

Correo electrónico recibido en Gmail

Lo que se verá es:

  • Enviar un correo desde PHP
  • Poner un asunto incluso si el mismo tiene letras con acentos
  • Establecer el remitente a un nombre personalizado
  • Cortar el mensaje para evitar truncarlo
  • Enviar HTML a través de un correo

Este tutorial será muy sencillo y simple para que se pueda apreciar lo básico para enviar un correo con PHP usando la función mail.

(más…)