Задать вопрос

Как найти ссылки на другой домен?

В массиве находятся строки вида:
<a href="/onw">один</a>
<a href="/twoo">один</a>
<a href="#">три</a>
<a href="https://mysite.ru">четыре</a>"
<a href="https://mysite.ru/news">пять</a>"
<a href="https://vk.com/feed">шесть</a>"

Как определить сколько внешних ссылок на странице стоит если родной домен mysite.ru заранее известен?
Думал найти регуляркой что-то типа
href=\"(http:\/\/|https:\/\/)всё_кроме_mysite.ru
но не вышло составить регулярку
  • Вопрос задан
  • 226 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
miraage
@miraage
Старый прогер
https://regex101.com/r/hZ1iF6/3

На самом деле можно еще придраться, добавить кучу возможных вариантов, но для конкретных примеров - сработает.

href="(https?:\/\/(?!mysite\.ru\/?).+?)"
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@devian3000
да, именно регуляркой.
можно разбить на задачи.

foreach( $links as $link ){
    if( stripos( $link, $siteName )  === false ){
         if( preg_match('#^(http\:\/\/|https\:\/\/)#', $link) ){
               // Some actions
         }
    }
}


1. Проверяем есть вхождение в строку доменного имени сайта.
2. Проверяем является ли ссылки ссылкой на сторонний ресурс проверяя строку на начало с http или https.
3. Делаем какое либо действие.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы