Как спарсить нужную ссылку, если на странице много одинаковых классов и номер всегда разный я про [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;
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости