- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
<?php
$content = '
<div>
<a href="http://www.site1.ru">Сайт1</a>
<a href="http://www.site1.ru" target="_blank">Сайт1</a>
<a href="http://www.site2.ru">Сайт2</a>
<a href="http://www.site2.ru" target="_blank">Сайт2</a>
</div>
';
preg_match_all("/<a\s+[^>]*?[^>]*>([^>]*[^>]>)/", $content, $matches, PREG_PATTERN_ORDER);
for ($i = 0; $i < count($matches[0]); $i++) {
$n2 = $matches0][$i];
echo "$i= ".$n2."<br>";
}
Есть переменная $content, необходимо с помощью регулярного выражения выбрать из неё только одну ссылку <a href="http://www.site1.ru">.
Попытался собрать такое, в итоге получилось лишь /<a\s+[^>]*?[^>]*>([^>]*[^>]>)/, которое выбирает все ссылки. Никак не пойму как составить выражение которое исключает, а не добавляет.
/<a.+?href="(http:\/\/(?:www\.)?site1\.ru.+?)"[^>]*>(.+?)<\/a>/
Если только код первой ссылки, то
preg_match('/<a\s+[^>]+>[^<]*<\/a>/', ...);
при условии что между тегами <a>…</a> нет других тегов.
Вообще, не совсем понятно, что вы пытаетесь выбрать. Жирным выделено одно, а судя по коду — вам нужно совсем другое.
[umka] - то что надо, вытаскивает именно нужный мне адрес!!!
Ещё вопрос, подскажите где почитать о регулярных выражениях. В инете много ресурсов, но от них голова взрывается. Нужно чтобы было разжёвано для чайника.
p.s. Мне нужно было выбрать именно адрес внутри которого нет target, дальше я его сравниваю с шаблоном и отсеиваю лишние.
Ресурсов много, но синтаксис-то примерно одинаковый :)
Главное понять суть, как это работает.
Почитайте на pcre.ru, например, или купите книжку по Perl.
то что надо, вытаскивает именно нужный мне адрес!!!
Мне нужно было выбрать именно адрес внутри которого нет target
Как-то снова все туманно расписано.. Так вам нужен конкретный адрес или тег в котором нету атрибута target?
а perl и php - синтаксис одинаковый?
давайте объясню.
есть html документ, в котом много ссылок на разные ресурсы. Мне нужна только одна ссылка, начало которой я знаю.
я беру html в переменную и при помощи регулярного выражения выбираю все ссылки.
дальше сравниваю каждую с шаблоном
например:
есть
www.site1.ru/index.php?id=2&cs=0
www.site2.ru/index.php?id=6&cs=10
www.site3.ru/index.php?id=55&cs=0&ff=33
www.site4.ru/index.php?id=33&cs=6&dd=44
мне нужно только
www.site1.ru/index.php?id=2&cs=0
я сравниваю начало "www.site1.ru" с каждой ссылкой и вывожу ту, которая похожа
но в выборке оказалось 2 таких похожих ссылки, они одинаковые, только одна простая, вторая с target. Вот я искал как выбрать ссылки без таргета. А дальше вы уже знаете, сравню каждую с шаблоном и возьму нужную.