Как определить наличие определенной страницы в URL-адресе? - PullRequest
2 голосов
/ 22 февраля 2011

Я пытаюсь проверить, присутствует ли определенный URL на странице, предоставленной другим веб-сайтом.

Мне нужно проверить, содержит ли данный URL ссылку на мой сайт.

Я использую PHP, и я хотел бы использовать preg.

Ответы [ 4 ]

5 голосов
/ 22 февраля 2011

Если вы знаете URL-адрес, который ищете, не можете ли вы использовать strpos()?

if (strpos($your_html_page, 'your_url') !== false) {
    echo 'The web web page has your_url in it.';
}

Это простое совпадение - но оно не говорит вам, является ли это гиперссылкой - просто если URL-адрес находится где-то на странице. Если вы хотите убедиться, что на самом деле гиперссылка, то этот подход или простое регулярное выражение не поможет (по крайней мере регулярное выражение может быть ненадежным и ненадежным). Вам нужно правильно проанализировать DOM, извлечь элементы <a> и проверить атрибут href.

1 голос
/ 22 февраля 2011

А для разбора вы могли бы использовать простой html dom-парсер

html = file_get_html('http://stackoverflow.com/');

// Find all links 
foreach($html->find('a') as $element){
   if( preg_match($your_website_url, $element->href) > 0){
      //do something
   }
}
0 голосов
/ 22 февраля 2011

Недавно мне пришлось это сделать ...

вот регулярное выражение

preg_match_all( '/<a[^>]*href=[\'"]([^\'"]+)[\'"][^>]*>/i', $message, $links );

в массиве $links у вас будет 2 массива.

0 - полные теги <a>

1 - URL-адрес атрибутов href

0 голосов
/ 22 февраля 2011

Ну, вы извлекаете контент, используя streams , а затем анализируете его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...