Как получить определенный HTML-тег из источника HTML-страницы по значению атрибута - PullRequest
2 голосов
/ 25 февраля 2011

Я новичок в stackoverflow, надеюсь, найду мое решение здесь:)

Используя PHP, я хочу использовать функцию php:

function getHtmlTags($html_source, $tag='div', $by_attr="class", $attr_value="class_name"){
}

Пример: если найден 1, должен вернутьсятакой массив:

array([0] => '<div class="class_name">blah blah</div>');

Я искал везде :( не нашел решения! помогите пожалуйста

1 Ответ

1 голос
/ 25 февраля 2011

Загрузите ваш HTML-документ в объектную модель документа и используйте XPath , чтобы найти элемент (ы) на основе заданных параметров.- прочитайте это, прежде чем погрузиться в этот кошмар - RegEx соответствуют открытым тегам, кроме автономных тегов XHTML

Например (предупреждение - полностью не проверено)

/**
 * @return DOMNodeList
 */
function getHtmlTags($html_source, $tag='div', $by_attr="class", $attr_value="class_name")
{
    $document = new DOMDocument();
    if (!$document->loadHTML($html_source)) {
        throw new Exception('Invalid HTML source');
    }

    $xpath = new DOMXPath($doc);

    $query = sprintf('//%s[%s="%s"]', $tag, $by_attr, $attr_value);

    return $xpath->query($query);
}
...