我正在尝试检查其他网站提供的网页中是否存在特定网址。
我需要检查给定的网址是否包含指向我网站的链接。
我正在使用PHP,我想使用preg。
答案 0 :(得分:5)
如果您知道要查找的网址,则无法使用strpos()
?
if (strpos($your_html_page, 'your_url') !== false) {
echo 'The web web page has your_url in it.';
}
这是一个简单的匹配 - 但它并没有告诉你它是否是一个超链接 - 只是网页中的网址是否为somwehere。如果你想验证实际上是一个超链接而不是这种方法或一个简单的正则表达式没有帮助(至少一个正则表达式可能是繁琐和不可靠的)。您需要正确parse DOM,提取<a>
元素并检查href属性。
答案 1 :(得分:1)
对于解析部分,您可以使用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
}
}
答案 2 :(得分:0)
好吧,您使用streams获取内容,然后解析它。
答案 3 :(得分:0)
最近我不得不这样做......
这是常规表达
preg_match_all( '/<a[^>]*href=[\'"]([^\'"]+)[\'"][^>]*>/i', $message, $links );
在数组$links
中你将有2个数组。
0 - 完整的<a>
代码
1 - href属性的URL