Php反向链接检查在另一个网站

9nvpjoqh  于 2023-05-05  发布在  PHP
关注(0)|答案(2)|浏览(81)

我试图做一个脚本来检查是否有一个网页反向链接到我的网页。我已经找到了这个脚本,但问题是,它返回的错误消息“没有找到反向链接”,即使有一个反向链接。有人能告诉我这个剧本有什么问题吗?下面是我使用的脚本:

require('simple_html_dom.php');

function CheckReciprocal( $targetUrl, $checkLinkUrl, $checkNofollow = true )
{
    $html = file_get_html($targetUrl);
    if (empty($html))
    {
        //@ Could not load file
        return false;
    }

    $link = $html->find('a[href^='.$checkLinkUrl.']',0);
    if (empty($link))
    {
        //@ Link not found
        return false;
    }

    if ( $checkNofollow && $link->hasAttribute('rel') )
    {
        $attr = $link->getAttribute('rel');
        return (preg_match("/\bnofollow\b/is", $attr) ? false : true);
    }

    return true;
} 

$targetUrl = 'http://example.com/test.html';

$checkLinkUrl = 'http://mysite.com';

if ( CheckReciprocal($test, $checkLinkUrl) )
{
    echo 'Link found';
}
else { echo 'Link not found or marked as nofollow'; }

谢谢大家!

slsn1g29

slsn1g291#

我不知道simple_html_dom.php的$html-〉find()是如何工作的,因为我从来没有使用过它,但似乎你的问题就在那里。我相信DOMDocument +正则表达式。
只是写了一个函数并测试了它,只需要在$url上使用纯域+任何你想要的,不要担心http(s)或www之类的东西:

function checkBackLink($link, $url, $checkNoFollow = true){
    $dom = new DOMDocument();
$dom->loadHTMLFile($link);

    foreach($dom->getElementsByTagName('a') as $item){
        if($checkNoFollow){
            if(preg_match('/nofollow/is', $item->getAttribute('rel'))) continue;
        }
        if($item->hasAttribute('href') === false) continue;
        if(preg_match("#^(https?\://)?(www\.)?$url.*#i", $item->getAttribute('href'))) return true;
    }
}

if(checkBacklink('the link', 'example.com')){
    echo "link found";
} else {
    echo "Link not found or marked as nofollow";
}

如果你不喜欢它,但仍然想使用simple_html_dom,只要确保find()是如何工作的,因为如果它只匹配精确的值,那可能会很麻烦。

ljo96ir5

ljo96ir52#

批量锚文本和Dofollow / Nofollow检查器

它允许您根据以下条件检查反向链接:

  • 锚文本状态(拉取所有关键字或直接链接)
  • Dofollow和nofollow状态
  • HTTP状态
    用途:
  • 在“域”框中,键入反向链接链接到的域名:“example.com.”
  • 在“反向链接URL(每行一个):”文本字段中,您批量逐个粘贴反向链接。(使用HTTP或HTTPS)。
  • 检查将检查您点击的反向链接10乘10。它将显示交易状态的百分比和有多少反向离开。
    项目文件https://github.com/ercanatay/Backlink-Checker.git

相关问题