elmijo / php-html-dom
Esta Es una Herramienta que permite convertir y manipular una cadena de texto con formato html en un objeto php.
Requires
- php: >=5.4.0
- elmijo/php-cliente-addr: 2.0
- elmijo/php-error-log: 2.0
- symfony/css-selector: ~3.2
Requires (Dev)
- satooshi/php-coveralls: dev-master
This package is not auto-updated.
Last update: 2024-11-09 19:02:52 UTC
README
Esta Es una Herramienta que permite convertir y manipular una cadena de texto con formato html en un objeto php.
Instalación
Lo podemos hacer a travéz de composer:
"require": { ... "elmijo/php-html-dom": "1.0" ... }
Como usar la Herramienta
Inicializar el objeto
$dom = new \PHPTools\PHPHtmlDom\PHPHtmlDom;
Importar HTML desde una url
$dom->importHTML('http://php.net/');
Importar HTML desde un archivo
$dom->importHTML('/ruta/del/archivo.txt');
Importar HTML desde un texto
$dom->importHTML('<div id="content-1"><ul><li class="item">item 1</li><li class="item">item 2</li></ul></div>');
Comprobar que si se importo el HTML
if(!!$dom->importHTML('http://php.net/')) { ... //Si se logra importar el contenido devuelve TRUE ... }
El metodo e
Este metodo permite instanciar uno o mas elementos dentro del contenido HTML importado, para instanciar dicho objeto solo tenemos que pasar un selector css.
$domlist = $dom->e('article'); //o $domlist = $dom->e('.clase-de-los-elementos'); //o $domlist = $dom->e('#id-del-elemento'); //o $domlist = $dom->e('article > div > p:first-child');
El resultado es un objeto \PHPTools\PHPHtmlDom\Core\PHPHtmlDomList con una serie de metodos que te permitiran manejar el resultado.
Cada objeto \PHPTools\PHPHtmlDom\Core\PHPHtmlDomList esta compuestoṕor una serie d elementos \PHPTools\PHPHtmlDom\Core\PHPHtmlDomElement que tambien posee una serie de metodos para manipular dich objeto.
Un Ejemplo Completo
$dom = new \PHPTools\PHPHtmlDom\PHPHtmlDom; if(!!$dom->importHTML('http://php.net/')) { var_dump($domlist->count()); $domlist = $dom->e('article'); $element = $domlist->eq(0); $parentElem = $element->parent(); $find = $domlist->eq(0)->childs->find('p'); $find->each(function($inx,$ele){ echo sprintf("%s : %s","Tiene la clase item",$ele->hasclass('item')); echo sprintf("%s : %s","Nombre de la Etiqueta",$ele->tagName); echo sprintf("%s : %s","Texto con Forrmato",$ele->textFormatting); }); }