30/04/2014

Cómo acceder a los elementos del DOM desde PHP

Cómo acceder a los elementos del DOM desde PHP

El Document Object Model (DOM; modelo de objetos de documento) es una interfaz de programación de aplicaciones para documentos HTML y XML. Los documentos escritos en estos lenguajes de marcas se componen de una serie de etiquetas con posibles atributos y, en la mayoría de los casos, con contenido en su interior. Dentro del contenido que encierra una etiqueta también puede haber una o más etiquetas con sus respectivos contenidos:

<p>Esto es el <span class=”resaltado”>contenido</span> de la etiqueta p.</p>

La representación gráfica del DOM de un documento es un árbol que refleja esta jerarquía de elementos.

El lenguaje JavaScript (y sus bibliotecas, como jQuery) permiten crear scripts a través de los cuales podemos manipular los elementos del DOM. Si, por ejemplo, quisiéramos que el usuario pudiera modificar la tipografía del título de la página presionando un botón, deberíamos implementar ese comportamiento a través de JavaScript, ya que necesitaríamos manipular la clase CSS del elemento título.

Pero ¿qué sucedería si necesitáramos desarrollar un programa en PHP que entre sus funciones tenga la de descargar una página web y manipular su DOM? Deberíamos intercambiar información entre JavaScript y PHP, tarea nada fácil debido a que el primer lenguaje es client-side y el segundo, server-side. Podríamos lograrlo con Ajax, pero no sería muy eficiente.

Por suerte, existen varias soluciones para acceder a los elementos del DOM desde PHP, sin trabajar directamente con JavaScript:

  • PHP DOM. Se trata de una extensión oficial que viene incorporada al lenguaje PHP, por lo que tiene la ventaja de no requerir de herramientas externas (ahorrando tiempo de carga y posibles conflictos). No es tan fácil de aprender como otras herramientas ni tan flexible como jQuery, pero debería ser la primera opción a considerar.
  • phpQuery. Esta API permite utilizar jQuery desde PHP, a través de una sintaxis prácticamente idéntica. Quienes conozcan jQuery la dominarán en poco tiempo. Lamentablemente, su desarrollo se abandonó hace varios años y muchos de sus métodos no funcionan como deberían, a lo que se suma que la documentación oficial es muy poco detallada.
  • PHP Simple HTML DOM Parser. Una completa herramienta en constante mejora que tiene la particularidad de reconocer incluso código HTML no válido. Si bien carece de algunas características presentes en jQuery, con paciencia podemos obtener resultados igualmente satisfactorios.

Gracias a estas herramientas podemos manipular la estructura de documentos en HTML o XML utilizando sólo PHP, facilitando nuestro flujo de trabajo y obteniendo un código más fácil de leer.

0

angularjs Aplicaciones en Facebook aplicaciones mobile behavioral targeting Botones Call-to-action breadcrumbs breadcrumbs web búsqueda de personal búsqueda facetada Call-to-action buttons Client-side cliente-destacado cms a medida coding comercio electrónico content marketing CSS3 PIE cuanto debe pesar un sitio data-driven web design Datos estructurados Defacement Denegación de servicio Desarrollar una aplicación web desventajas de PhoneGap diseñar newsletters diseño web diseño web argentina diseño web esqueuomórfico Diseño web responsive Diseño web responsivo diseño web santa fe diseño web Smart TV diseño web televisores DOM desde PHP enlaces rotos filtros de búsqueda flash flat web design formularios sitio web fragmentos enriquecidos función de autocompletar futuro de la realidad aumentada html HTML5 html5shiv inbound marketing Initializr interfaces Web para televisores javascript jobs jQuery Mobile Mapbox maquetado html/css maquetador web masonry layout menú de navegación menú desplegable Metodologías ágiles Modernizr MVC Navegación por teclado oferta laboral OpenStreetMap paginas de Facebook Paper js Paper js framework personas Phishing plan de QA Polyfills polymer portfolio-destacados portfolio-inicio programacion de CMS Programadores WordPress página de contacto página de error 404 que es Backbone.js Realidad aumentada Resultados instantáneos server-side skeuomorphic design sliders y usabilidad soporte Internet Explorer Storytelling Underscores usabilidad usabilidad buscadores user-centered design ux velocidad de carga web Vendor prefixes ventajas jQuery Mobile Ventanas integradas versiones antiguas de Internet Explorer WAI-ARIA web components web imprimible Web Semántica WordPress para ecommerce