Имеется строка с HTML кодом, как получить все ссылки внутри этого string? В голову ничего не приходит. Это через регулярку делается?
Вариант с DOMDocument:
$htmlDom = new DOMDocument;
$htmlDom->loadHTML($html_string);
$links = $htmlDom->getElementsByTagName('a');
$urls = array();
foreach($links as $link){
$linkText = $link->nodeValue;
$linkHref = $link->getAttribute('href');
if(strlen(trim($linkHref)) == 0){
continue;
}
if($linkHref[0] == '#'){
continue;
}
$urls[] = array(
'text' => $linkText,
'href' => $linkHref
);
}
var_dump($urls);
вариант с preg_match_all:
$regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>(.*)<\/a>";
if(preg_match_all("/$regexp/siU", $html_string, $urls)) {
//$urls[2] = массив адресов
//$urls[3] = массив адресов с тегом а
}
var_dump($urls);
Есть такая проверка на вхождение слова в строке:
if(stristr($string, 'https://stackoverflow.com') === FALSE) {
echo '"earth" не найдена в строке';
}
Можешь регулярку написать и все найденное записать в массив:
preg_match_all("|<[^>]+>(.*)</[^>]+>|U",
"<b>пример: </b><div align=left>это тест</div>",
$out, PREG_PATTERN_ORDER);
echo $out[0][0] . ", " . $out[0][1] . "\n";
echo $out[1][0] . ", " . $out[1][1] . "\n";
Результат:
<b>пример: </b>, <div align=left>это тест</div>
пример: , это тест
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Идет огромный поток информации, и это уже сейчас занимает много времениНадо реализовать постепенную запись в БД
Есть многомерный массив aqua, который я вывожу через foreach
Суть задачи: загрузить прайс (около 1 милиона позиций) через веб интерфейсСейчас этот интерфейс есть и он работает, но заметил такое: первых...
Проблема с группировкой подзапроса, при выборе MIN выбирается минимальное значение вообще, не отрабатывает GROUP BY post_type, post_status