【发布时间】:2011-02-22 08:53:55
【问题描述】:
我正在尝试检查某个特定 URL 是否存在于另一个网站提供的页面中。
我需要检查给定的 URL 是否包含指向我网站的链接。
我正在使用 PHP,我想使用 preg。
【问题讨论】:
我正在尝试检查某个特定 URL 是否存在于另一个网站提供的页面中。
我需要检查给定的 URL 是否包含指向我网站的链接。
我正在使用 PHP,我想使用 preg。
【问题讨论】:
如果你知道你要找的网址,你不能用strpos()吗?
if (strpos($your_html_page, 'your_url') !== false) {
echo 'The web web page has your_url in it.';
}
这是一个简单的匹配 - 但它不会告诉你它是否是一个超链接 - 只要 url 在页面中是 somwehere。如果您想验证实际上是一个超链接,那么这种方法 或简单的正则表达式 将无济于事(至少正则表达式可能是繁琐且不可靠的)。您需要正确地 parse DOM,提取 <a> 元素并检查 href 属性。
【讨论】:
对于解析部分,您可以使用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
}
}
【讨论】:
preg_match 正在使用正则表达式。
好吧,您使用 streams 获取内容,然后解析它。
【讨论】:
最近我不得不这样做......
这是正则表达式
preg_match_all( '/<a[^>]*href=[\'"]([^\'"]+)[\'"][^>]*>/i', $message, $links );
在数组$links 中,您将拥有 2 个数组。
0 - 完整的<a> 标签
1 - href 属性的 Url
【讨论】: