with w3school samples plugin formulario example and php jquery html xml html-parsing

w3school - php samples



¿Interfaz jQuery para PHP? (12)

¿Has estudiado el uso de la clase DOMDocument de PHP?

http://us2.php.net/manual/en/book.dom.php

No estoy seguro de si esto es exactamente lo que está buscando, pero permite buscar un documento por varios atributos y otra manipulación de DOM similar.

Tenía curiosidad por saber si existe o no una interfaz / biblioteca de estilo jQuery para PHP para manejar archivos HTML / XML, específicamente utilizando selectors estilo jQuery.

Me gustaría hacer cosas como esta (todas hipotéticas):

foreach (j("div > p > a") as anchor) { // ... } print j("#some_id")->html(); print j("a")->eq(0)->attr("name");

Estos son solo algunos ejemplos.

Hice tanto Google como pude pero no pude encontrar lo que estaba buscando. ¿Alguien sabe si existe algo en este sentido o es algo que tendré que hacer desde cero utilizando domxml?


Créeme que estás buscando xPath. Te estoy mostrando un ejemplo

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <?php $dom = new DOMDocument; libxml_use_internal_errors(TRUE); $dom->loadHTMLFile(''http://somewhereinblog.net''); libxml_clear_errors(); $xPath = new DOMXPath($dom); $links = $xPath->query(''//h1//a''); //This is xPath. Really nice and better than anything foreach($links as $link) { printf("<p><a href=''%s''>%s</a></p>/n", $link->getAttribute(''href''), $link->nodeValue); } ?>


El mejor que encontré es https://github.com/scotteh/php-dom-wrapper

Funciona de manera muy similar a jQuery, y es rápido.

Probé muchas bibliotecas a partir de otras respuestas, pero no logré portar las manipulaciones que estaba haciendo en jQuery fácilmente. Con este fue una brisa. Supongo que pronto será más popular ...


Escribí una biblioteca que duplica los métodos de manipulación DOM de jQuery en PHP, pero utiliza xpath, no los selectores de estilo jquery. De lo contrario, funciona más o menos de la misma manera.

[http://pxtreme.sourceforge.net] [1]

$doc = px("index.html"); // Create a px Object $headings=$doc->xpath("/html/body/h2"); // Select Elements to Manipulate $headings->addClass("NewLook"); // Change their Appearance px("index.html")->xpath("//h2")->addClass("NewLook"); // All in One Line // use anonymous functions in PHP 5.3 $doc->xpath("//p")->each( function ($pxObject, $index) { $str = $pxObject->get($index)->text(); if (mb_strpos($str, "pxtreme")) $px->attr("title", "Check out this paragraph!"); });

http://pxtreme.sourceforge.net


Haciendo un poco más de caza, creo que podría haber encontrado precisamente lo que estaba buscando:

phpQuery - jQuery puerto a PHP

Gracias a todos por sus respuestas, definitivamente los tendré en cuenta para otros usos.


La pregunta es antigua pero lo que necesitas es Query Path .





PHP Simple HTML DOM Parser utiliza selectores estilo jQuery. Ejemplos de la documentación :

Modificar elementos HTML:

// Create DOM from string $html = str_get_html(''<div id="hello">Hello</div><div id="world">World</div>''); $html->find(''div'', 1)->class = ''bar''; $html->find(''div[id=hello]'', 0)->innertext = ''foo''; echo $html; // Output: <div id="hello">foo</div><div id="world" class="bar">World</div>

Scraping Slashdot:

// Create DOM from URL $html = file_get_html(''http://slashdot.org/''); // Find all article blocks foreach($html->find(''div.article'') as $article) { $item[''title''] = $article->find(''div.title'', 0)->plaintext; $item[''intro''] = $article->find(''div.intro'', 0)->plaintext; $item[''details''] = $article->find(''div.details'', 0)->plaintext; $articles[] = $item; } print_r($articles);


simplexml quizás? Su sintaxis es diferente de jquery, pero hace que el desplazamiento de XML sea realmente fácil.

Sin embargo, no funcionará para HTML que no sea XML válido.


HtmlPageDom extiende el rastreador de DOM de Symfony y agrega funciones de manipulación de DOM similares a jQuery.