Есть ли в PHP эквивалентный класс JQuery DOM-манипулятора / CSS-селектора? - PullRequest
2 голосов
/ 27 апреля 2010

Я знаю, что могу использовать DOMDocument и DOMXPath для манипулирования файлами XML. Но я действительно люблю JQuery, и было бы здорово, если бы в мире PHP было что-то более похожее на JQuery, которое я мог бы использовать для манипулирования DOM.

ПРИМЕЧАНИЕ: Меня интересует только то, как JQuery выбирает и манипулирует DOM, не все другие части JQuery (я думаю, Вы можете сказать, только поп и Sizzle части).

<ч /> Обновление:
Похоже, что есть эквивалентные функции для селектора, но я полагаю, что что касается функций манипуляции, я должен придерживаться DOMDocument.

Ответы [ 4 ]

4 голосов
/ 22 сентября 2011

Вы можете использовать phpQuery

Он описывает себя следующим образом: phpQuery - это серверный PHP5, цепочечный, управляемый селектором CSS3 API Document Object Model (DOM), управляемый селектором, основанный на jQuery JavaScript Library.

3 голосов
/ 27 апреля 2010

Ну, исключая все специфичные для JavaScript вещи, которые у вас остались с помощью механизма выбора CSS:

http://framework.zend.com/manual/en/zend.dom.query.html

Наслаждайтесь:)

2 голосов
/ 10 декабря 2014

Да, HtmlPageDom написано именно для того, что вы просите.

1 голос
/ 09 апреля 2012

@ retro: он запрашивает библиотеку типа sizzle, которая работает с использованием PHP в качестве языка вместо javascript, то, что вы сказали о «без изменений, чтобы написать это», неверно, это просто код, вы можете написать его как сколько хочешь.

однако проблема, которую я считаю, заключается в том, что javascript, работающий в браузере, дает вам +1 возможность получить доступ к системе DOM, которая может помочь вам в создании множества dom узлов / html-узлов автоматически без необходимости их сами.

в php, DOM просто болезнен, jquery с радостью скрывает это, и поскольку javascript работает не так, как PHP, он может делать это без особых усилий, однако PHP не имеет доступа к DOM браузера и имеет другой метод работы, это намного более болезненно.

это не значит, что это невозможно, потому что это так, просто это не так просто, а иногда и отличается, когда кажется, что нет явной причины, почему, я полагаю, возможно, что PHP DOM внутренне использует libXML или что-то подобное, и слишком много раскрывает внутреннюю библиотеку, поэтому PHP загроможден семантикой библиотеки C.

Думаю, вам стоит взглянуть на phpQuery (https://github.com/TobiaszCudnik/phpquery), или даже лучше и в активной разработке, QueryPath (http://querypath.org).

)

однако, не ожидайте, что они будут такими же простыми, как javascript jquery library, потому что это не так, к сожалению .....

...