Me pone programar

Más que me pone, digamos que me gusta y disfruto con ello

Me pone programar

Blog personal sobre PHP, JavaScript, CSS, Estándares, Flash i demás temas interesantes del mundo de la informática e Internet

Acentos en los subjects de los emails. Ampliado

15/08/2008 a las 10:42 por Shox

Como pudimos ver en otro post, poner acentos o carácteres extraños en los subjects de los emails ya no es un misterio.

Leyendo el fabuloso libro “Building Scalable Web Sites -  The Flickr way” he profundizado más en el tema.
El formato se compone de lo siguiente:

=?utf-8?Q?hello_=E2=98=BA?=

que corresponde a:

=?charset?encoding?encoded-text?=

Vamos por partes, el charset utilizaremos siempre utf-8, ya que es nos posibilita enviar cualquier tipo de cadena de carácteres, sin limitar el alfabeto o idioma.

El encoding, puede ser B o Q, y depende de su codificación, el texto codificado será de una manera o otra:

B - Codificación en Base64: Es la que utilicé en el anterior post, codificando todo el string posteriormente en base64.

Q - Codificación en Quoted Printable (RFC 3548): Cada byte representa un literal comenzando por el símbolo igual (=) seguido por dos dígitos hexadecimales. Por ejemplo el byte 0×8A se representaría con =8A. Los espacios (0×20) serán substituidos por el literal underscore (_, byte 0×5F). Los demás carácteres alfanuméricos se quedarían como están.

¿Cual es la mejor opción? Ambas generarán un subject bien formado, peró quizas en modo Q, el texto codificado final es un poco más human-friendly, que el codificado en base64.

Amazon - Building Scalable Web Sites; de Cal Henderson (O’Reilly)

Categorías: Meponeprogramar, PHP
Tags: , , ,
Comentarios: Sin comentarios »

Hacer llamadas a funciones PHP desde XSL

12/08/2008 a las 07:32 por Shox

Hace poco me dijeron que podia hacer llamadas a funciones PHP desde XSL que devolvieran strings. Hoy mismo he investigado un poco el tema, y ha sido más fácil de lo que me esperaba:

1.- Añadir a la hoja de estilo XSL el namespace de PHP para que valide:

XML:
  1. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl">

2.- En el parser PHP, habilitar las llamadas en PHP con esta línea, justo después del constructor

PHP:
  1. $xslt->registerPHPFunctions();

Ahora solo hay que llamar a la funcion PHP desde el código XSL:

XML:
  1. <xsl:value-of select="php:function('getMessage','welcome',string($id))"/>

Donde getMessage es el nombre de mi funcion, i los demás párametros son añadidos a dicha función. Generaría algo así:

PHP:
  1. getMessage('welcome',id);

donde id es una variable de XSL, de ahí lo de string($id).

Con simplemente esto, podemos hacer llamadas a PHP, posibilitando que generen incluso XML, el cual será tratado por el XSL.

XSLTProcessor

registerPHPFunctions

Categorías: PHP
Tags: , , ,
Comentarios: Sin comentarios »

Firebug Lite, por fin inspector de DOM i HTML para IE

02/08/2008 a las 06:12 por Shox

La nueva versión de Firebug Lite, 1.2, ha añadido a su funcionalidad de sólo como uso de consola de debug JavaScript, y ahora se comporta de una manera más parecida a la de su hermano mayor. Ahora es capaz de inspeccionar el DOM, hacer track de los XHRs, y navegar por el HTML, CSS y JavaScript.

Por fin una versión que será muy útil a los desarrolladores web, para superar la dificil tarea de programar en Internet Explorer. Funciona en todos los navegadores, como Safari y Opera.

Para instalarla en cualquier página web sólo tienes que poner el siguiente código:

HTML:
  1. <script type='text/javascript'src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script>

Firebug Lite

Vía: No al IE6 - Navegadores web

El lento gethostbyaddr de PHP

02/08/2008 a las 05:57 por Shox

La función gethostbyaddr‏ de PHP devuelve el host name de una IP dada. Puede ser útil por ejemplo para saber si el visitante es un bot de Google o Yahoo, para poder contabilizar bien las visitas o tener un control más profundo del visitante.

Todo sería perfecto si esta función funcionara correctamente. Utilizandola en un proyecto, me di cuenta que tardaba demasiado tiempo en generar toda la web, y en un principio pensaba que fuera un error mio, ya que se hacian consultas a una DB y se generaba una caché, pero resulto ser esta aparente inofensiva función. Quitandola he dividido entre 10 el tiempo de generación, lo que nos puede dar una referencia de lo poco bien planteada que está dicha función.

En el foro de PHP, otros usuarios también se han dado cuenta del echo, y hasta han echo alguna propuesta para solucionar el problema que puedes ver aquí

El problema parece que viene que va a buscar la información a varios DNS y al haber algunos de ellos caidos, se demora el proceso. El usuario que hizo el script, propone una conexión UDP, pero para ello necesitamos saber la IP del DNS

Categorías: Firefox, Google, Meponeprogramar, PHP
Tags: , , ,
Comentarios: Sin comentarios »