Я знаю, что я могу использовать DOMDocument и DOMXPath для управления XML-файлами. Но мне очень нравится JQuery, и было бы здорово, если бы что-то похожее на JQuery в мире PHP, которое я мог бы использовать для манипулирования DOM с параллельной стороны.
ПРИМЕЧАНИЕ. Меня интересует только то, как JQuery выбирает и манипулирует DOM, а не все остальные части JQuery (я думаю, вы можете сказать только части Pop и Sizzle ).
Обновить:
Похоже, что есть эквивалент для функций селектора, но, насколько я понимаю, я должен придерживаться DOMDocument.
Ну, исключая все специфические вещи JavaScript, которые вы оставили с помощью механизма селектора CSS:
http://framework.zend.com/manual/en/zend.dom.query.html
Наслаждаться 🙂
Вы можете использовать phpQuery
Он описывает себя следующим образом: phpQuery – это PHP5-серверный, цельный, основанный на CSS3 API-интерфейсы Document Object Model (DOM), основанный на JavaScript-библиотеке jQuery.
Да, HtmlPageDom написан точно для того, что вы просите.
@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).
однако, не ожидайте, что они будут такими же легкими, как библиотека jquery javascript, потому что это не так, к сожалению …..