jQuery-подобный интерфейс для PHP?

Мне было любопытно, существует ли интерфейс / библиотека jQuery-стиля для PHP для обработки файлов HTML / XML, особенно с помощью селекторов стиля jQuery.

Я хотел бы делать такие вещи (все гипотетические):

 foreach (j ("div> p> a") в качестве якоря) {
    // ...
 }


 print j ("# some_id") -> html ();


 print j ("a") -> eq (0) -> attr ("name");

Это всего лишь несколько примеров.

Я сделал столько же, сколько мог, но не смог найти то, что искал. Кто-нибудь знает, существует ли что-то в этих строках, или это то, что мне придется делать с нуля, используя domxml?

PHP Simple HTML DOM Parser использует селектора стиля jQuery. Примеры из документации :

Изменение 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> 

Скребок 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); 

Делая еще одну охоту, я думаю, что, возможно, нашел именно то, что искал:

phpQuery – порт jQuery для PHP

Спасибо всем за ваши ответы, я обязательно буду учитывать их в других целях.

Вопрос старый, но вам нужен путь запроса .

Поверьте мне, вы ищете xPath. Я показываю вам пример

 <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); } ?> 

http://fluentdom.org/ – еще одна альтернатива.

Я написал библиотеку, которая дублирует методы манипуляции с DOM jQuery в PHP, но использует xpath, а не селектор стиля jquery. В противном случае он работает почти так же.

[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

HtmlPageDom расширяет возможности DOM Crawler от Symfony и добавляет функции манипуляции DOM, подобные JQuery.

моя альтернатива – https://github.com/gymadarasz/xparser

быстрый и простой в использовании, пример:

 $x('#nav a', function($elem) { $elem->href = '//myurl/' . $elem->href; }); 

Лучший, который я нашел, – https://github.com/scotteh/php-dom-wrapper

Он работает так же, как jQuery, и он работает быстро.

Я попробовал много библиотек из других ответов, но мне не удалось легко переносить манипуляции, которые я делал в jQuery. С этим это был легкий ветерок. Думаю, скоро это станет популярнее …

симплекс ? Его синтаксис отличается от jquery, но он действительно упрощает перемещение XML.

Однако он не будет работать для HTML, который не является допустимым XML.

Вы изучали использование класса DOMDocument PHP?

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

Не уверен, что это именно то, что вы ищете, но это позволяет искать документ по различным атрибутам и другим подобным манипуляциям DOM.

Если вы используете современную структуру, вы должны также проверить их.

Эти компоненты могут быть установлены через композитор.