Web 2.0 Tips

Icon

Consejos y trucos para el desarrollo y diseño de webs

[PHP] Arreglar XMLs con Entities errors con una expresión regular

Este es un tip corto, tenia que usar un XML y en algunos casos me tiraba error:

PHP Warning:  simplexml_load_string(): Entity: line 1: parser error : xmlParseEntityRef: no name in /home/exos/aver.php on line 8

Warning: simplexml_load_string(): Entity: line 1: parser error : xmlParseEntityRef: no name in /home/exos/aver.php on line 8
PHP Warning:  simplexml_load_string(): yBack</song><producer>Timbaland,J.Timberlake,Danja</producer><catalogNo>88175* & in /home/exos/aver.php on line 8

Warning: simplexml_load_string(): yBack</song><producer>Timbaland,J.Timberlake,Danja</producer><catalogNo>88175* & in /home/exos/aver.php on line 8
PHP Warning:  simplexml_load_string():                                                                                ^ in /home/exos/aver.php on line 8

Warning: simplexml_load_string():                                                                                ^ in /home/exos/aver.php on line 8

Esto es por que el SimpleXML de PHP no parsea el XML si tiene errores de entidades o formato, y es que muchos generan los XML’s a mano y no escapan bién estas entidades, una solucion que ofrece este formato es usar CDATA, que tiene una sintaxis asi:

<SuperTag>
      <subtag>
            <valor><![CDATA[Esto no hace falta que esté escapado & :-)  `'  " < />]]></valor>
      </subtag>
</SuperTag>

El objetivo de esta Expresión regular es simplemente aplicar un CDATA en todos los valores que no sean otros tags.

Leer este tip »


Usando el método stop() en jQuery

Como ya saben jQuery es comodísimo a la hora de agregar efectos a nuestras páginas y mejorar las interfaces, un simple efecto de fade que antes eran varias lineas de código, ahora es un simple .fedeIn() / . fadeOut(), y asi con muchas cosas, podemos hacer estos efectos “lentos” para dar una sensación mas moderna, hacer desaparecer elementos, o habilitar otros en ciertos casos, los efectos nos suman muchos puntos en cuanto a como se ve la página. Pero tenemos un problema, que pasa cuando 2 efectos se cruzan, por ejemplo, si el desvanecimiento de un div tarda 1 segundo, y a los 500 milisegundos lo hago “reaparecer”, estarémos enviando 2 efectos a la vez, cosa que puede terminar en errores gráficos.

Leer este tip »


Usando Full-Text en MySQL, para búsquedas super rápidas

Al trabajar en webs dinámicas siempre nos encontramos con la necesidad de ofrecer facilidades a los usuarios, una es la de búsqueda por texto, que es buscar fragmentos de texto en una tabla para filtrar elementos, esto se puede hacer con un simple where que buscará dicho fragmento en todo los registros de la tabla, la usada sentencia like, pero realmente no es para nada lo mas óptimo, y desaprobechamos muchas ventajas que podemos tener con indices del tipo full-text, acá, una iluminación.

Leer este tip »


Automatizando el modelo con triggers en MySQL

Actualmente en la programación web casi no se utilizan las funciones mas avanzadas de las bases de datos, simplemente se usa para guardar y listar los datos que nuestras aplicaciones generan, pero como todo avanza, y las aplicaciones se vuelven cada vez mas complejas, es necesario profundizar mas nuestros conocimientos. En este caso voy a presentar los triggers, que básicamente son fragmentos de código que se ejecutan al dispararse un evento.

Leer este tip »


Creador de backgrounds on-line

Me encontré con esta interesante aplicación, que me saco de un apuro, como ya abre dicho, me llevo muy mal con programas de dieño, y no tengo ojo para hacer nada, asi que siempre que necesito algo de grafica pido una mano. En este caso necesitaba un background lindo para una págica web y me puse buscar y encontre esta web que los genera de forma muy facil.

Leer este tip »


File upload simil Ajax

Esto no es nada de HTML5 ni Flash, solo una forma de hacer un uploader de archivos asincrónico sin recargar la página. Y es que aveces hacemos una buena interface en ajax con todo bonito y cuando tenemos que subir un archivo, nos encontramos con el problema de que no podemos hacer upload de un archivo por Ajax, ya que no tenemos permisos desde Javascript para leer un archivo, pero igual hay una solución.

Leer este tip »


Basta de GD en PHP, a usar Imagick

La solución mas utilizada en PHP para el manejo de imagenes es sin duda GD, que viene instalada en la mayoria de servidores que soporten PHP, con esta librería se puede manipular imágenes o crearlas de fomrma censilla, pero hay una herramienta mas nueva, rápida y su implementación en PHP a diferencia de GD, es orientada a objetos, cosa que les alegrará a muchos. En fin basta de GD.

Leer este tip »


Parsear JSON desde Javascript

Esto mas que un Tip es un recurso, el otro día necesitaba poder parsear una respuesta JSON desde javascript, como todos sabemos JSON es naturalmente Javascript, por lo que leerlo se hace con un simple eval, pero para poder convertir un objeto a JSON, se debe reconocer todas las propiedades y métodos de dicho objeto y convertirlo en un string respetando la sintaxis.

Leer este tip »


Usar evento onload en scripts para Internet Explorer

Hace poco escribí un post sobre como emular ajax cross domain, y la forma era básicamente llamar un script el cual traía los datos en una variable de javascript, el problema es que descubrí al terminar la aplicación y testearla en IE que no funcionaba el evcento onload del elemento script, asi que tuve que encontrar la forma de solucionarlo, y aqui se las traigo.

Leer este tip »


Problema pasando valores a callbacks en Javascript

Bueno el titulo es horriblemente largo pero realmente no sé bien como describir este problema con el que me topé. En la programación asincrónica donde nos basamos en eventos y callbacks, no sabemos si un determinado procedimiento va a funcionar cuando lo llamamos y seguimos nuestra linea de ejecución, ahora supongamos que necesitamos pasarle a nuestro callback datos para que haga algo, si el objeto que dispara el evento lo hace enviandole parametros estos sirven, pero si necesitamos usar variables o entidades su un nivel superior, generando un closure, digamos, tenemos el problema de que al ser asincrónico esas variables pueden haber cambiado su valor antes de ser ejecutado este callback y dirijirnos directo a un error.

Leer este tip »


Categoria

Haste fan

Web Analytics