Я использую несколько простых php для очистки информации с веб-сайта, чтобы можно было читать ее в автономном режиме. Код, кажется, работает нормально, но я беспокоюсь о неопределенном поведении. Сайт немного плохо кодирован, и некоторые из элементов, которые я захватил, используют один и тот же идентификатор с другим элементом. Я бы предположил, что getElementById пересекает DOM сверху вниз, и причина, по которой у меня нет проблемы, состоит в том, что мне нужен первый экземпляр с идентификатором. Есть ли способ обеспечить такое поведение? У элемента нет другого реального способа его отличить, поэтому выбор его по id представляется лучшим вариантом. Я включил приведенный назад пример кода, который я использую ниже.PHP getElementById поведение с идентификатором элементов id
Спасибо.
<?php
$curl_referer = "http://example.com/";
$curl_url = "http://example.com/content.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, 'Scraper/0.9');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($ch, CURLOPT_REFERER, "$curl_referer");
curl_setopt($ch, CURLOPT_URL, "$curl_url");
$output = curl_exec($ch);
$dom = new DOMDocument();
@$dom->loadHTML($output);
$content = $dom->getElementById('content');
echo $content->nodeValue;
?>
Я даже не использовал XPath, чтобы найти его. Спасибо за это. EDIT: Спасибо за головы и за UA. – Session