- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Продолжаю учить пхп, дошел до регулярок и там такое задание - получите все ссылки и анкоры из примера
Мой код
$str = '<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>парсинг</title>
<link rel="stylesheet" type="text/css" href="css/styles.css">
<script src="/js/scripts.js"></script>
</head>
<body>
<a class="www" href=\\\'test1.php\\\' > ссылка 1</a>
<a href=\\\'test2.php\\\' class="www"> ссылка 2</a>
<p>Это абзац!</p>
<a href = "test3.php" >ссылка 3</a>
<p>
<a id="test" href="http://site.ru/test4.php">ссылка 4 </a>
</p>
<p class="www">Это <b>абзац!</b></p>
<a href="test5.php">ссылка 5 </a>
<a href="test6.php" class = "www" >с сы лка 6</a>
</body>
</html>';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
В итоге анкоры все правильно вытащил, а ссылки уже второй день не могу все корректно без мусора вытащить. Подскажите плиз идеальную регулярку?
не хило так... эти вещи можно месяцами изучать.
Dram,
Как вариант
$re = '~<a[^>]+href.*?=.*?(?:"|\')(.*?)(?:"|\').*?>(.*?)<\/a>~siu';
Но имейте ввиду на будущее важный нюанс, регулярки для этой цели годятся так себе, одной регуляркой крайне сложно разобрать даже корректный хтмл, а некорректный невозможно в принципе.
Поэтому все решения вида "регуляркой вытаскиваем все ссылки" расчитаны в целом именно на "конкретный пример" (или их набор), шаг влево - шаг вправо - оппаньки.
~<a.*?href.*?=.*?(?:'|")([^\\]+?)\\*?(?:'|").*?>(.*?)<~mi
Не сказать что идеальная, но для данного примера сгодится
Не ребята, вы все молодцы конечно, но вы думаете ТС что-то хоть понял из ваших закорючек? :)
Леня, я понял примерно 90%, мне пока хватит
Не ребята, вы все молодцы конечно, но вы думаете ТС что-то хоть понял из ваших закорючек? :)
Good point.
Dram, https://regexr.com/ и https://regexper.com Вам помогут разобраться с готовыми выражениями.
https://regex101.com мне этот понравился
...
Проехали... ТС это уже знает (regex101.com).