I am trying to check whether a particular URL is present in a page supplied by another website.
I need to check whether or not the given URL contains a link to my website.
I am using PHP, and I would like to use preg.
If you know the url you are looking for, can't you use strpos()
?
if (strpos($your_html_page, 'your_url') !== false) {
echo 'The web web page has your_url in it.';
}
This is a simple match - but it doesn't tell you whether it's a hyperlink - just if the url is somwehere in the page. If you want to verify is actually a hyperlink than this approach or a simple regex is not going to help (at least a regex is likely to be fiddly and unreliable). You need to parse the DOM properly, extract out the <a>
elements and check against the href attribute.
Well, you fetch the content using streams and then you parse it.
And for the parsing part you could use the simple html dom parser
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
}
}
Recently i had to do that...
here is the regular expresion
preg_match_all( '/<a[^>]*href=[\'"]([^\'"]+)[\'"][^>]*>/i', $message, $links );
in th array $links
you will have 2 arrays.
0 - The complete <a>
tags
1 - The Url of the href attributes