jueves, 27 de diciembre de 2012

Crear un XML desde un Array en PHP

Hace poco me encontré con la necesidad de generar archivos XML desde PHP. Lo interesante del tema es que el XML debe generarse en el servidor desde algunos parámetros, por eso era necesario incluir un encabezado para que el cliente lo identificara como tal.

Por lo tanto esto se compone de cuatro partes:

1) El encabezado en PHP:

<?php
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');

header('Content-type: text/xml');
?>


2) El array puede ser en cualquier complejidad. Aqui algunos ejemplos:

<?php
$array 
= array(
    
"foo" => "bar",
    
"bar" => "foo",
);
// a partir de PHP 5.4 

$array = [
    
"foo" => "bar",
    
"bar" => "foo",
];
?>

3) La invocación se hace por una función en donde se le pasa el array, indicandole cuál es el nodo del XML en el que se va a encapsular el resto de los datos:

echo arrayToXml($array,'datos');


4) La función que hace el trabajo es la siguiente:

function arrayToXml($array,$lastkey='root')
{
    $buffer.="<".$lastkey.">";
    if (!is_array($array))
    {$buffer.=$array;}
    else
    {
        foreach($array as $key=>$value)
        {
            if (is_array($value))
            {
                if ( is_numeric(key($value)))
                {
                    foreach($value as $bkey=>$bvalue)
                    {
                        $buffer.=arrayToXml($bvalue,$key);
                    }
                }
                else
                {
                    $buffer.=arrayToXml($value,$key);
                }
            }
            else
            {
                    $buffer.=arrayToXml($value,$key);
            }
        }
    }
    $buffer.="</".$lastkey.">";
    return $buffer;
}






5) El resultado que obtenemos es un archivo en XML con la siguiente estructura:

<datos>
   <foo>bar</foo>
   <bar>foo</bar>
</datos>

martes, 18 de diciembre de 2012

Migrar datos y estructuras de SQL Server a MySQL

Recientemente nos encontramos en una disyuntiva dentro de la empresa, en la que nos tocó tomar un giro en la arquitectura de unos de nuestros proyectos principales, que implicaba migrar nuestra plataforma de SQL Server 2005 a MySQL.

Y la primer pregunta que nos surgió fue: "Es posible migrar toda nuestra plataforma e información de SQL Server a MySQL?"... yo ya estaba preparado mentalmente para pasar varias noches con pantuflas peluditas, escuchar rock, y litros de café frente a mi PC haciendo la transición casi manual.

En medio de la lluvia de ideas y de búsquedas me topé con esta herramienta, que realmente me dejó perplejo por su facilidad y gran desarrollo en su interfáz de usuario.

http://www.mysql.com/downloads/workbench/

Es una aplicación desarrollada por los mismos magos de MySQL y pensada para todos aquellos que venimos de otras plataformas de administración de bases de datos.

Validando el HTML y su sintaxis

Durante el desarrollo de cualquier proyecto web o diseño de sitio web, nos enfocamos por tratar de darle gusto al cliente en todo lo que pide, y generalmente omitimos algunas validaciones básicas, entre ellas la más simple de todas y no menos importante: el HTML.

En realidad, la estructura de una página de HTML, ya sea generada por PHP, ASP, .NET, Ruby o cualquier otro lenguaje, debe tener unos lineamientos básicos, pero hoy por hoy, cuando las plataformas se diversifican, las tecnologías cambian tan rápidamente y la premura por entregar el proyecto, hace que nos encontremos en pleno lanzamiento de nuestro proyecto y surge el comentario de algún amigo a última hora: "Oye, no me carga bien en mi Tablet!", ó "Tengo IE 8 y las imágenes se ven corridas para un lado"... y un sin número de detalles más.

Hay muchas librerías que nos ayudan a minimizar este y muchos otros aspectos, pero siempre pasamos por alto lo más obvio... la estructura y la sintaxis del HTML.

No es de angustiarse, pero si de tener un poco más de cuidado. Lo cierto es que aunque estemos trabajando con HTML5, incluimos sintaxis y tags de HTML1, algunas veces por la costumbre, porque no fuimos precavidos en la arquitectura o porque simplemente funcionó y lo dejamos así.

Por eso les traigo esta herramienta, que no importa la versión del HTML con que estemos trabajando (incluyendo HTML5), siempre nos va a orientar en qué estamos fallando:

El enlace es el siguiente:
http://validator.w3.org/

Calcular edad con la fecha de nacimiento en PHP

 En este tutorial, aprenderemos cómo calcular la edad a partir de la fecha de nacimiento en PHP. Daré dos ejemplos de Cómo calcular la edad....