Как спарсить нужную ссылку, если на странице много одинаковых классов и номер всегда разный я про [0, и т.п.], известно начало ссылки, класс. Пример:
<?php
include 'dom.php';
$html = file_get_html ('$_POST['name']);
$link = $html->find('a[class=classname href=http://site.co/]');
?>
Нужно искать по двум параметрам:
И вытащить именно ссылку, а не название, при этом я буду эту ссылку вставлять в другую переменную.
В выражении поиска указываете класс ссылки обычным образом a.classname
, а начало ссылки проверяйте через атрибут [href^='....']
$body = <<<HTML
<div>
<a class="link" href="http://yandex.ru">yandex</a>
<a class="link needle" href="http://site.co">site.co</a>
<a class="link" href="http://google.com">google</a>
<a class="xxx" href="http://bing.com">bing</a>
</div>
HTML;
$html = str_get_html($body);
$links = $html->find("a.link[href^='http://site.co']");
foreach($links as $l){
print_r($l->href);
}
в результате данного кода $links
будет содержать массив подходящих ссылок. В данном случае это будет единственная ссылка, указывающая на site.co
Для получения первого элемента из найденных передайте индекс 0
в метод find
. Сохранить значения ссылки и ее текста для дальнейшего использования вы можете с помощью свойств href
и plaintext
:
$lnk = $html->find("a.link[href^='http://site.co']", 0);
$url = $lnk->href;
$txt = $lnk->plaintext;
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Какие есть способы замены черного изображения на белое с помощью css при :hover?