Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Sustituciones con expresiones regulares en una base de datos WordPress con WP-CLI

Imago voragine.net
• Por
Recientemente he tenido que desactivar y desinstalar en un sitio WordPress el plugin pdf-viewer, ya que está fuera de desarrollo y tiene vulnerabilidades que pueden ser explotadas para infectar el sitio WordPress. Lo he sustituido por el plugin PDF.js Viewer que hace exactamente lo mismo. El plugin con vulnerabiliades usaba el sortcode [pdfviwer] para incluir un visor PDF en el contenido de un post; el sustituto usa el shortcode [pdfjs-viewer]. La sintaxis de ambos plugins es ligeramente diferente. La sustitución del plugin implicaba sustituir todos los antiguos shortcodes por el nuevo. Para no hacer esto a mano he recurrido a la interfaz de línea de comandos de WordPress, WP-CLI. Se puede usar el comando search-replace con expresiones regulares. A continuación los pasos que he seguido.

Expresiones regulares de vi y Perl para sustituir comas por puntos en números decimales, y cómo aplicarlo en PHP

Imago voragine.net
• Por

Los lenguajes de programación fueron inventados por gente que hablaba y escribía en inglés, así que están pensados para funcionar con las convenciones lingüisticas y matemáticas inglesas. Cuando cualquier lenguaje de programación tiene que relacionarse con bases de datos en idiomas diferentes siempre hay problemas.

Uno típico se da cuando se utiliza una base de datos en español que contiene números racionales en su expresión decimal. Para notar los decimales en inglés se utiliza el punto (0.45) y en español la coma (0,45). Así que antes de operar con estos números hay que convertir esas comas en puntos para que el lenguaje de programación entienda los números como decimales.

Este problema lo encontramos por ejemplo cuando queremos insertar datos que tenemos en un CSV a una base de datos SQL, utilizando PHP. Pondré como ejemplo el CSV de un proyecto en el que estoy trabajando, una herramienta para medir las emisiones de dióxido de carbono en los procesos constructivos.

Podemos transformar los números fácilmente usando expresiones regulares de vi en el editor vim, o expresiones regulares Perl en PHP mediante la función preg_replace.