Publi

  • 5 consejos para internacionalizar nuestros programas con gettext [PHP]

    Hace unos meses publicaba un artículo para hacer traducciones con gettext en nuestras aplicaciones, ahora vamos a ampliar aquello con algunos consejos útiles y trucos.

    1 – Conocer globalmente la locale

    No todo es gettext(), que usaremos para mensajes de la interfaz, puede que incluyamos textos desde base de datos y necesitemos tener a mano en todo momento esa locale, además de mucha más información sobre nuestro proyecto. Para ello, una buena forma es crear una clase estática que almacene esa información.… Leer artículo completo

  • Implementar un TPV básico con la pasarela Pasat Internet de 4b en PHP

    Es una pasarela de pago muy sencilla de implementar, por ejemplo es la opción que tenemos si somos del Banco Santander; aunque en su documentación que es bastante extensa (más de 70 páginas) hay cosas que no dejan muy claras, y lo peor de todo, no hay ningún ejemplo de pasarela básica con PHP (y los ejemplo que indican sólo funcionan en plataformas Windows).

    Por otra parte, la comunicación entre nuestra web y la pasarela se hace en texto plano, hubiera preferido algo como XML y que hubiera que firmar las comunicaciones, aunque sean entre servidores… pero bueno.… Leer artículo completo

  • Extraer fechas de inicio y fin de un evento periódico con PHP


    Si estamos trabajando con calendarios y organizando eventos puede que nos encontremos con un evento repetitivo en el tiempo, por ejemplo entre dos fechas determinadas, cada X días tenemos que realizar una tarea determinada. Sólo tenemos una fecha de inicio y de fin, queremos saber en este caso cuántas veces se va a repetir nuestra tarea y en qué fechas serán todos los eventos.

    Para poner un ejemplo concreto, entre el 15/12/2012 y el 31/12/2012 tenemos, cada 3 días una reunión… ¿qué días tenemos reunión?… Leer artículo completo

  • Traducciones con gettext para nuestros proyectos en PHP


    Es importante a la hora de realizar un proyecto que este pueda estar disponible en varios idiomas sin que sea muy dolorosa la traducción, es decir, lo deseable es que nuestra aplicación tenga la posibilidad de ser traducida a varios idiomas sin tocar el código fuente y que alguien no experto pueda introducir/modificar traducciones en nuestro proyecto (en el caso de un proyecto libre es importante que otras personas puedan colaborar en esto para poder llegar a más público).… Leer artículo completo

  • Obtener una lista de las localizaciones instaladas en el sistema desde PHP y Java [locales]

    En linuz, para obtener todas las locales, o localizaciones instaladas en el sistema, podemos hacerlo con el comando locale -a:

    $ locale -a
    C
    C.UTF-8
    en_AG
    en_AG.utf8
    en_AU.utf8
    en_BW.utf8
    en_CA.utf8
    en_DK.utf8
    en_GB.utf8
    en_HK.utf8
    en_IE.utf8
    en_IN
    en_IN.utf8
    en_NG
    en_NG.utf8
    en_NZ.utf8
    en_PH.utf8
    en_SG.utf8
    en_US.utf8
    en_ZA.utf8
    en_ZM
    en_ZM.utf8
    en_ZW.utf8
    es_AR.utf8
    es_BO.utf8
    es_CL.utf8
    es_CO.utf8
    es_CR.utf8
    es_DO.utf8
    es_EC.utf8
    es_ES
    es_ES.iso88591
    es_ES.utf8
    es_GT.utf8
    es_HN.utf8
    es_MX.utf8
    es_NI.utf8
    es_PA.utf8
    es_PE.utf8
    es_PR.utf8
    es_PY.utf8
    es_SV.utf8
    es_US.utf8
    es_UY.utf8
    es_VE.utf8
    POSIX
    zh_CN.utf8
    zh_SG.utf8

    Ahora bien, podemos usar este comando dentro de PHP para obtener la lista y añadir a la lista información como el idioma y el país usando una lista de países e idiomas.… Leer artículo completo

  • Eliminar un elemento de un array en PHP

    En principio vamos a definir dos tipos de arrays: los que tienen índices numéricos y los que no. Vemos aquí un ejemplo de los dos:

    1
    2
    3
    4
    5
    <?php
    $array = array ('Playa', 'Montaña', 'Río', 'Ciudad', 'Afueras');

    print_r($array);
    ?>

    Este script devolverá:

    Array
    (
    [0] =Playa
    [1] =Montaña
    [2] =Río
    [3] =Ciudad
    [4] =Afueras
    )

    Luego podemos ver arrays que tienen como índice una cadena de caracteres:

    1
    2
    3
    4
    5
    6
    $array=array('gato' => 'perro',
             'mesa' => 'silla',
             'alto' => 'bajo',
             'fijo' => 'móvil',
             );
    print_r($array);

    Lo cual devolverá:

    Array
    (
    [gato] =perro
    [mesa] =silla
    [alto] =bajo
    [fijo] =móvil
    )

    Ahora bien, si queremos borrar sólo un elemento, podemos utilizar unset(), lo que se utiliza para borrar una variable, de hecho si lo probamos en el segundo array nos devolvería:

    1
    2
    unset($array['mesa']);
    print_r($array);

    Array
    (
    [gato] =perro
    [alto] =bajo
    [fijo] =móvil
    )

    Todo bien, pero si lo probamos en el array de índices numéricos:

    1
    2
    unset($array[2]);
    print_r($array);

    Array
    (
    [0] =Playa
    [1] =Montaña
    [3] =Ciudad
    [4] =Afueras
    )

    Ahora lo que ha pasado es que el índice 2 ha desaparecido, se ha borrado, pero los índices no se han reestructurado.… Leer artículo completo

  • Conversor de unidades en PHP

    Es un pequeño proyecto que tengo desde hace tiempo y utilizo en mis desarrollos de php. Parece una tontería, pero ahorra tiempo a la hora de convertir unidades dentro de un programa. Esto es una parte importante a la hora de proporcionar una experiencia de usuario, ya que a la hora de expresar tamaño de archivos, si decimos que el archivo ocupa 1602392 bytes, al usuario final lo dejamos igual, es más, con cara de tonto frente al ordenador mientras cuenta los números y echando la cuenta de la abuela, dice 1.6Mb (ya no quiero ver lo que hará ese usuario cuando vea 1Tb en bytes); es un detalle para nuestro programa que nos diga: 1.52Mb por ejemplo.… Leer artículo completo

  • Analizando ownCloud y me olvido de Dropbox, Drive, SkyDrive, One y demás

    He sido usuario principalmente de Dropbox, y es una gozada el poder tener tus archivos en un servidor externo para poder acceder a ellos desde cualquier lado, ya sea ordenador (en cualquier plataforma) o móvil. Por ejemplo:

    • Estar hablando con alguien de una cosa que leíste, acordarte de que la guardaste en el ordenador y desde cualquier lugar del mundo acceder a esa información para enseñarla.
    • Sincronizar las fotos de tu teléfono móvil con tu carpeta online para poder acceder directamente en el ordenador sin necesidad de conectar el móvil, ni siquiera tener que transferir las imágenes (ellas lo hacen solas)
    • Tener a mano información privada como contraseñas, notas, citas del médico.
    Leer artículo completo
  • Evitar que tu web se retrase por culpa de un servidor caído

    Muchas veces, cuando estamos generando un sitio web de forma dinámica, la información que manejamos no depende sólo de nuestro sitio, sino de otro sitio web aparte, alojado en otro servidor (tal vez es nuestro también, o tal vez no). En ese caso, puede ocurrir que el sitio al que estamos accediendo, en un momento determinado no responda, y nuestro sistema se quedará esperando a que el servidor de alguna señal, y por eso mismo estamos haciendo que nuestros usuarios esperen (medio minuto o un minuto más de lo que deberían) para al final ver un mensaje de error.… Leer artículo completo

  • Estadísticas de directorios en PHP

    A veces, tenemos la necesidad de generar una estadística básica de algún subdirectorio de nuestras aplicaciones. Por ejemplo, para ver cuánto tenemos ocupado en caché, y ver si ésta se está regenerando bien (es sólo un ejemplo), puede que tengamos un directorio donde alojemos los archivos que suben nuestros usuarios y queramos ver si crece o no en el tiempo.

    Este par de funciones pueden resultar útiles. Aún se pueden optimizar un poco, pero la idea aquí está.… Leer artículo completo