Ваш код будет пытаться найти элемент с классом caption
в элемент с идентификатором leadtxt
. Поскольку у вас есть идентификатор, и идентификаторы должны быть уникальными, было бы больше смысла, чтобы просто использовать, что:
$html->find('#leadtxt', 0)
Точный ответ на ваш вопрос будет таким:
$html->find('div#leadtxt.caption', 0)
Обратите внимание на отсутствие space - он найдет элемент div с идентификатором leadtxt
и классом caption
. Но опять же, это избыточно, и вышеупомянутый подход будет лучше и, скорее всего, быстрее.
Редактировать: вот еще несколько примеров, поскольку я не совсем понимаю, что именно вы пытаетесь сделать.
Ниже будет найти все элементы, которые имеют идентификатор leadtxt
или класс из caption
:
$html->find('#leadtxt, .caption')
// OR specify the fact you only want DIV elements...
$html->find('div#leadtxt, div.caption')
Это указание вы хотите элементы с любым из заданных классов (один или более):
$html->find('.classone, .classtwo, .classthree')
// OR just the DIV elements with any of these classes:
$html->find('div.classone, div.classtwo, div.classthree')
Это указать любые элементы со всеми данными классами:
$html->find('.classone.classtwo.classthree')
// OR again, just DIV elements...
$html->find('div.classone.classtwo.classthree')
Редактировать 2: Как вы уже сказали, кажется, что Simple HTML DOM не работает, когда вы предоставляете селектор, который задает несколько классов/идентификаторов вместе. Я могу только предположить, что это слабость в библиотеке, которая еще не была рассмотрена. Это позор, так как это означает, что не работает со стандартными CSS-селекторами, указанными выше, несмотря на то, что они требуют.
Я уже пробовал это, он не работает – Youss
Вы пробовали оба подхода? Что происходит? Верхний должен работать, если ваш HTML действительно содержит этот идентификатор (один раз). –
Верхний, очевидно, работает, но его элементы с несколькими ссылками; классы и id. Дайте мне минуту, я сделаю пример по компиляции онлайн – Youss