dic 02

Utilizar expresión regular, guía para torpes de Dreamweaver sobre expresiones regulares

Como soy una persona muy torpe, cada vez que necesito utilizar una expresión regular de Dreamweaver me vuelvo loco. Las guías que hay por Internet son más bien para personas que les gusta el tema, pero como personalmente las odio, no quiero aprender como funcionan, sólo que me resuelvan el problema puntual que tengo cada muchos meses.

Así que si odias las expresiones regulares, aquí tienes mis apuntes por si te son de ayuda:

 

Tengo dos líneas de programación que pone:

if ($TextoB02<>$TextoC02) {$modif=”(CAMBIADO!)”;} else {$modif=”";}
$traduccion = $traduccion.”<TR><TD>”.$TextoA02.”</TD><TD>”.htmlspecialchars

Resulta que esta línea está repetida unas 300 veces, con un número que cambia, en este caso es “$TextoB02″, “$TextoC02″, “$TextoA02″, en la siguiente es lo mismo pero en lugar de “02″ es “03″ y así hasta el 300 y pico.

Como cambiarlo a mano es tedioso, hago lo siguiente:

En la casilla de búsqueda de Dreamweaver (CTRL+F), escribo en la casilla de arriba:

$traduccion = $traduccion.”<TR><TD>”.$TextoA([0-9]{2,3}).”</TD><TD>”.htmlspecialchars

Y en la de abajo:

if ($TextoB$1<>$TextoC$1) {$modif=”(CAMBIADO!)”;} else {$modif=”";}
$traduccion = $traduccion.”<TR><TD>”.$TextoA$1.”</TD><TD>”.htmlspecialchars

Activo la casilla que dice “Utilizar expresión regular” y le doy al botón “Reemplazar todo”.

 Vaya, no funciona! eso es porque utilizo caracteres raros como el “$” y tal, y hay que ponerles una barrita “\$”. Después del cambio definitivamente queda:

Casilla de arriba:

\$traduccion = \$traduccion.\”<TR><TD>\”.\$TextoA([0-9]{2,3}).\”<\/TD><TD>\”.htmlspecialchars

Casilla de abajo:

if ($TextoB$1<>$TextoC$1) {$modif=”(CAMBIADO!)”;} else {$modif=”";}
$traduccion = $traduccion.”<TR><TD>”.$TextoA$1.”</TD><TD>”.htmlspecialchars

 Ahora si ha funcionado. :)

 

Otro ejemplo:

Tenemos la línea:

if ($TextoB38<>$TextoC38) {$modif=”(CAMBIADO!)”;} else {$modif=”(NC)”;}
$traduccion = $traduccion.”<tr ><td>”.$TextoA38.”</td><td>”.$modif.htmlspecialchars($TextoB38).”</td></tr>”;

Y la queremos cambiar por:

if ($TextoB38<>$TextoC38) {$modif=”(CAMBIADO!)”;} else {$modif=”(NC)”;}
$traduccion = $traduccion.”<tr ><td>”.$TextoA38.”</td><td>”.$modif.htmlspecialchars($TextoB38).”</td></tr>”;

 

Pues en el recuadro de arriba del buscador pondremos:

\$TextoC([0-9]{2,3})\) \{\$modif=\”\(CAMBIADO!\)\”\;\}

Y en el de abajo

$TextoC$1) {$modif=”(CAMBIADO!)”.$TextoC$1.”<br />”;}

 

Y ahora un último ejemplo, tenemos un montón de líneas “case” como la siguiente:

case “114″: $estacio=”Rambla Just Oliveras L1|304|417″; break;

Y queremos cambiarla para que queden así:

case “Rambla Just Oliveras L1″: $estacioID=”114″; break;

Pués entonces hay que poner en el formulario de reemplazo de Dreamweaver lo siguiente. En la parte de arriba:

case “(.*)”: $estacio=”(.*)|(.*)|(.*)”; break;

pero para que no de errores con los carácteres comillas, $ y |, le ponemos la barra invertida delante, quedando así:

case \”(.*)\”: \$estacio=\”(.*)\|(.*)\|(.*)\”; break;

Y en la casilla de abajo lo siguiente:

case “$2″: $estacioID=”$1″; break;

Y ya podemos reemplazar.

RESUMEN DE ESTO ÚLTIMO (es lo mismo, pero creo que mejor explicado):

Tenemos:  case “114″: $estacio=”Rambla Just Oliveras L1|304|417″; break;
Queremos: case “Rambla Just Oliveras L1″: $estacioID=”114″; break;

Casilla de arriba:  case \”(.*)\”: \$estacio=\”(.*)\|(.*)\|(.*)\”; break;
(si ponemos case “(.*)”: $estacio=”(.*)|(.*)|(.*)”; break; dara errores porque con los carácteres comillas, $ y |, hay que poner una barra invertida delante)

Casilla de abajo:   case “$2″: $estacioID=”$1″; break;

 

 

Expresiones regulares con EditPad

Intento borrar todas las líneas, dejando sólo los dos o tres últimos caracteres de cada línea. Esto es útil para extraer los N últimos caracteres por diferentes motivos. Lo he hecho así:

Casilla de arriba:  (.{3})\s*$

Casilla de abajo:   ¬¬¬$1

 

Y luego hago un segundo paso:

Casilla de arriba:  (.*)¬¬¬(.*)

Casilla de abajo:   $2

 

Otra cosa que se puede hacer es borrar sólo el primer caracter de una cadena, o borra el último caracter de una cadena. Respectivamente se haría así:

Casilla de arriba:  ^.{0,3}

Casilla de abajo:   (dejarlo vacío)

 

o para borrar el caracter final:

Casilla de arriba:  .{0,3}$

Casilla de abajo:   (dejarlo vacío)

 

 

 

nov 22

Cómo insertar anuncios AdSense en Piwigo [Resuelto]

Cómo insertar anuncios AdSense en PiwigoEstuve buscando cómo insertar anuncios AdSense en Piwigo y resultó ser una pesadilla. Piwigo es un buen software escrito en PHP,  que se utiliza para crear y organizar galerías de imágenes, pero existe poca información sobre como insertar banners de AdSense.

Después de varios días buscando por los foros de Piwigo y por Internet cómo insertar anuncios AdSense, al parecer nadie sabe como se hace, y los que si lo saben dan respuestas bastante enigmáticas, respuestas incompletas o que directamente no funcionan.

Finalmente decidí pelearme con el programa y dejo aquí como primicia de www.drpc.es, las instrucciones sobre como implementar de manera fácil, los anuncios en una web que funcione con Piwigo:.

Cómo insertar anuncios AdSense en la parte superior del todo

  1. “Administración” –> Configuración –> Opciones
  2. Insertar el código AdSense donde pone “Banners de las páginas”.

 Insertar anuncios anuncios AdSense arriba en Piwigo

Cómo insertar anuncios AdSense justo en la parte superior de las galerías e imágenes

Esto es un poco complicado, pero si sigues los pasos, no habrá problemas.

  • Ir a la carpeta “/themes/default/template“.
  • Abrir con el software Dreamweaver el archivo “index.tpl“.
  • Buscar el código “{if !empty($CONTENT_DESCRIPTION)}” y vuestro código debe quedar a algo parecido a lo siguiente. Insertar el antiguo código de AdSense (Piwigo se rompe si insertáis el nuevo código de AdSense asíncrono) .

 

  • Ahora vamos a insertar el anuncio de AdSense encima de todas las imágenes ampliadas. Buscar el archivo “picture_content.tpl“, cargarlo con Dreamweaver o un editor de texto que soporte UTF8.
  • Al inicio de todo del archivo “picture_content.tpl“, justo antes de donde pone “{if isset($high)}”, debes insertar el antiguo código de AdSense (si se inserta el nuevo código de AdSense llamado “código asíncrono”, el Piwigo se romperá). Quedaría algo parecido a esto:

Si tienes una versión muy nueva y no encuentras la línea que pone “{if isset($high)}”, busca otra que pone “{if !$current.selected_derivative->is_cached()}” y sigue el mismo procedimiento (es decir, poner el anuncio AdSense justo antes de esta línea).

 

Cómo insertar insertar AdSense en la parte inferior de Piwigo

  1. Instalar el plugin “PWG Stuffs” y activarlo.
  2. “Administración” –> “Plugins” –> “PWG Stuffs” –> “Añadir nuevo bloque” –> “Bloque personal”.
  3. Rellenar el formulario con los datos y en la casilla “contenido” pegar vuestro código de AdSense.

Insertar anuncios anuncios AdSense abajo en Piwigo

Y el resultado sería el siguiente. En la página principal quedaría así:

Ejemplo 1 de insertar Adsense en Piwigo

 

Y por ejemplo, en cada una de las fotos individuales, quedaría así:

nurie_net2b

ago 08

Cómo hacer que varios vídeos tengan el mismo volumen

Al proceso de que varios vídeos tengan el mismo volumen, se le llama también normalizar múltiples archivos de vídeos. Estos vídeos pueden ser películas, vídeos de YouTube, o de otras fuentes.

La normalización de varios archivos de vídeo a la vez, se puede conseguir de dos formas diferentes: de manera temporal o permanente. Aquí hablaremos del programa para normalizar el sonido de los vídeos, pero si quieres hacerlo sólo para MP3, hay otro programa alternativo.

La forma temporal, significa utilizar el programa con el que visualizas los vídeos (a este tipo de programas se les denomina “player de vídeo”), si el programa es mínimamente bueno en sus opciones de configuración de audio debe tener una opción para activar la normalización del sonido.

Por ejemplo en el player llamado VLC (para mi el mejor y encima es gratuito) puedes encontrar esta opción en

Herramientas –> Preferencias –> Audio –> Filtros –> Casilla que pone: Normalizador de volumen.

La forma permanente significa que ya sea manualmente o de manera automática con un programa, para conseguir que varios vídeos tengan el mismo volumen, se deben realizar los siguientes pasos:

  • Extraer la pista de audio.
  • Normalizar el volumen a 89db (es el punto óptimo, si se pone más fuertes aparece sonidos distorsionados o como si se friese un huevo frito, si se pone más bajo a veces queda demasiado bajo).
  • Codificar la pista de audio normalizada.
  • Sustituir la pista de audio antigua del vídeo por la nueva.

Esto se consigue hacer todo automáticamente con un programa gratuito llamado “BS FAG” cuya página oficial es esta, o puedes descargar el programa directamente desde Freewarefiles que ahora está por la versión 2.5.1.

El manual de este artículo se basa en la versión “BS FAG 2.3.0“, pero recomendamos que utilices la versión actualizada “BS FAG 2.5.1” o posterior.

Una vez hayas descargado e instalado el programa, ya puedes empezar. Cuando lo ejecutes puedes hacer dos cosas: o apretar el botón “Add”, o arrastrar los vídeos a la ventana del programa. Luego pulsas el botón que hay abajo que dice “Process” y ya está, el programa lo hará todo automáticamente.

bs-fag es un programa para que varios vídeos tengan el mismo volumen

Una vez ha acabado el proceso, todos los vídeos procesados tendrán el mismo volumen. En la columna “Gain” aparece la ganancia del volumen, tal como se ve en la imagen a algunos vídeos se les ha subido más el volumen que a otros, ya que el volumen era más bajo que los otros vídeos y el programa lo compensa aumentando un poco más el volumen que el resto.

Y ya para acabar, si cuando seleccionas vídeos para que haga la normalización del sonido, y te aparece un mensaje misterioso de error (digo misterioso porque no te aclara nada), se debe generalmente a dos razones:

  • No es un archivo de vídeo (por ejemplo si le pones una imagen, o un archivo musical tipo MP3).
  • Es un vídeo correcto, pero tiene “caracteres no ingleses“. Por ejemplo el nombre contiene acentos, eñes, ce trencadas (“ç”), diéresis, “eles geminadas”, etc. Si te pasa esto, renombrar el archivo con el mismo nombre pero sustituyendo las “letras problemáticas”. Por ejemplo “El fútbol del Barça 2005.avi” quedaría así “El futbol del Barca 2005.avi”.

Se me olvidaba, en el apartado de configuración se le pueden pasar parámetros para modificar el resultado, aunque es bastante complejo. A quién le interese, esos parámetros se pueden encontrar en la sección dedicada al volumen del programa FFmpeg (en idioma inglés).

Si te gustan las opciones avanzadas, puedes investigar como hacer este proceso de normalización utilizando técnicas más sofisticadas. Os recomiendo la mini guía del foro de videohelp.com (en idioma inglés), donde explican programas para extraer los datos de audio y trucos para hacer la normalización, utilizando procesos de lotes tipo BATCH.

Espero que este artículo ayude a alguien a ahorrarse tiempo, porque a mi me costó mucho encontrar un programa así. :)

 

abr 20

Cómo cambiar los metadatos EXIF de multiples fotos e imágenes JPG, GIF y PNG

Cambiar los metadatos, fechas y EXIF de imagenes gif jpg pngPara cambiar los metadatos (o también llamado metatags) de archivos JPG, GIF y PNG, es decir las etiquetas ocultas de las imágenes, hay pocos métodos conocidos. Harto de probar cosas, con el programa número 15 que me he bajado por fin encontré lo que buscaba.

No sólo se puede modificar los metadatos de los JPG, GIF, etc, se pueden modificar prácticamente todos los metadatos de todos los formatos gráficos.

Por ejemplo si tienes una colección de fotos que has realizado tu mismo y quieres “protegerlas” para que en caso que te las copien en otra web, puedas demostrar fácilmente que son tuyas introduciendo tu copyright en los metadatos de la imagen.

Si otra persona modifica la foto con el Photoshop, este programa respetará el metadato y el “copión” no se dará cuenta que está colgando fotos en su web con la prueba del delito insertada de manera oculta.

Pasemos a la práctica, lo primero es descargar estas dos aplicaciones para cambiar los metadatos:

1.- Exiftool v9.13. Al descomprimir este archivo comprimido, aparecerá el fichero “exiftool(-k).exe”. Es un programa que funciona a base de meterle comandos escritos, pero como es bastante aburrido hacerlo utilizaremos el siguiente programa para que sea todo más fácil y visual.
2.- ExiftoolGUI v5.15. Al descomprimirlo aparecerá la carpeta “exiftoolgui” con varios archivos y carpetas en su interior. Este programa fue colgado en el foro de la web oficial del programa ExifToolGUI.

Ahora hay que renombrar el archivo “exiftool(-k).exe” por “exiftool.exe” y copiarlo dentro de la carpeta “exiftoolgui”. Y ya podemos comenzar, ejecutar el programa ExifToolGUI.exe.

cambiar-los-metadatos-de-imagenesA la izquierda aparecerá el árbol de carpetas (1), buscar la carpeta que contenga las imágenes que se quiere cambiar los metadatos. En el centro (2) aparecerán los ficheros de imágenes y haciendo un clic encima de una de las imágenes, en la ventana de la derecha (3) aparecerán todos sus metadatos (pulsar el botón “ALL” para verlos todos).

Con la imagen seleccionada (o imágenes), pulsar el botón que hay en la parte de abajo que dice “ExifTool direct” (4), y aparecerán dos recuadros en blanco. Ahora en el recuadro de arriba (5) (justo después de donde dice “Command (press Enter to execute)” hay que escribir lo que se desea.

 

Por ejemplo, queremos introducir en el metadato “Comentarios” el texto con nuestro copyright:
-File:Comment=”(c) 2013 http://www.drpc.es/”
(cuando acabes de escribirlo, pulsa la tecla “Enter” para que se cumpla la orden)

Si copias y pegas la línea de arriba, revisa que las comillas sean correctas para que no te aparezca un mensaje de error. WordPress tiende a cambiar las “comillas normales” por comillas “raras”.

Si hay muchas imágenes, a veces parece que el programa se ha colgado. Si ocurre esto, hay que tener paciencia y esperar un poco. En caso que realmente se haya colgado, probad de hacerlo por partes (por ejemplo carpeta por carpeta), a veces si el programa se encuentra con imágenes corruptas, se vuelve inestable.

También lo ponemos en el metadato “Artista”:
-Exif:Artist=”(c) 2013 http://www.drpc.es/”

Si lo que quieres es cambiar los metadatos a todos los ficheros gráficos que hayan en la carpeta que tienes seleccionada y todas las subcarpetas, hay que utilizar el “-r” delante del comando, por ejemplo:
-r -File:Comment=”(c) 2013 http://www.drpc.es/”
-r -Exif:Artist=”(c) 2013 http://www.drpc.es/”

Y si se desea cambiar los metadatos sólo a los archivos JPG y TIF, se puede hacer lo siguiente:
-r -File:Comment=”(c) 2013 http://www.drpc.es/” -ext jpg -ext tif
-r -Exif:Artist=”(c) 2013 http://www.drpc.es/” -ext jpg -ext tif

Si quieres ampliar el tema, puedes encontrar más información (en inglés) en esta web sobre comandos del programa exifToolGUI.

abr 01

Leer Twitter con PHP en tu web y sin usar la API

Embudo que lee twitter con PHP y extrae mensajes de twitterBuscando la forma de leer Twitter con PHP para una aplicación, me encontré que muchos códigos fuente en PHP no funcionan porque son para la versión antigua de Twitter, otros códigos fuente PHP son para la versión moderna pero te obligan a registrarte, sacarte una clave de identificación, etc, y era como matar moscas a cañonazos.

Así que seguí buscando y encontré que hay otros métodos mucho más sencillos, incluso demasiado sencillos, así que he investigado un poco y aquí saco el trabajo de mis investigaciones sobre como obtener datos de Twitter con PHP, por si a alguien le resulta útil.

Primero muestro el código paso a paso y al final del artículo dejo un enlace para descargar todo el código completo que captura mensajes (y otros datos) de Twitter con PHP.

Desactivar la caché con PHP

Para empezar, es altamente recomendable para este tipo de programas desactivar todo tipo de cachés, ya que en algunos navegadores mal configurados y sobretodo en dispositivos móviles, cuando se recarga la página, se visualiza la página web guardada en la caché del disco duro (o equivalente) y no se visualiza la del servidor web. Y por tanto, no se verían las nuevas publicaciones, siempre se verían las mismas.

Con el siguiente código en PHP, forzamos a que una página en PHP se cargue siempre desde el servidor y no de la caché:

Convirtiendo texto en “enlaces Twitter”

La siguiente función no es mía, la publico el usuario Walter en los comentarios de la web Css-tricks.com, y su misión es procesar un texto y convertir ciertas cadenas a enlaces Twitter. Por ejemplo si se encuentra “Me gusta la #tecnologia moderna” convierte la palabra “#tecnologia” en un enlace que al clicarlo, visualizas los últimos tweets relacionados con #tecnlogia.

Leer Twitter con PHP y obtener datos y mensajes de un usuario

Ahora pasamos al capturador de mensajes de un usuario (sólo de un usuario, no de otras cosas), que permitirá leer Twitter con PHP y obtener sus datos en tu propia web.

Al inicio tenemos la variable “$usuario” donde le asignaremos un nombre de usuario de Twitter, en este caso al usuario David Bravo del cual soy un fan suyo (aunque él no me conozca). Y en la variable “$numDeTweets” le asignamos cuantos mensajes queremos ver, en nuestro caso le ponemos un 5 porque queremos visualizar sus últimos 5 mensajes:

Como se puede ver en el anterior ejemplo, al final hay toda una serie de objetos que los he dejado como comentarios. En teoría deberían funcionar según la documentación oficial hasta el momento y según otras webs que hablan sobre el tema, pero en mis pruebas estos objetos devuelven siempre el valor en blanco. Por si a alguien le interesan, aquí las dejo.

Leer mensajes de cualquier cosa en Twitter, usando su buscador

Ahora haremos algo parecido a lo anterior pero con otro método. En lugar de leer o capturar los tweets de un usuario, vamos a extraer los datos de una búsqueda, ya sea una palabra o un hashtag o cualquier otra cosa que se haya publicado en Twitter.

El problema es que tan sólo se puede recuperar un número limitado de mensajes (sólo los últimos 15 tweets).

Igual que antes, algunas etiquetas no devuelven nada (cadena vacía) pero aquí las dejo por si lo necesitáis para algo.

Descargar el código fuente completo

Y ya para acabar, dejo aquí en un fichero todo el código completo para leer mensajes de Twitter con PHP, funcionando y comprobado, así os ahorro tiempo:

capturaTwitter.php

Por favor, si te son útiles estas rutinas o las perfeccionas, o descubres fallos, o encuentras más información sobre más objetos que se puedan extraer, publica un comentario. Gracias.

Entradas más antiguas «