PHP正则表达式用于检索反向链接数

PHP正则表达式用于检索反向链接数,php,regex,preg-match,Php,Regex,Preg Match,我有一个查询谷歌的代码,可以得到某个网站的反向链接数量。我想在我正在制作的SEO报告生成器中使用它。问题是我不能让预赛正常进行。我需要帮助 <?php $q = "http://zetcode.com/"; $url = "http://www.google.com/search?hl=en&safe=off&q=link%3A".urlencode($q)."&btnG=Search"; $content = file_get_conten

我有一个查询谷歌的代码,可以得到某个网站的反向链接数量。我想在我正在制作的SEO报告生成器中使用它。问题是我不能让预赛正常进行。我需要帮助

<?php
    $q = "http://zetcode.com/";
    $url = "http://www.google.com/search?hl=en&safe=off&q=link%3A".urlencode($q)."&btnG=Search";
    $content = file_get_contents($url);
    $pattern = "/(<div id=\"resultStats\">About ([0-9,]+) results<nobr>)|(<div id=\"resultStats\">([0-9,]+) results<nobr>)/";
    preg_match($pattern, $content, $out);
    $googlelinks = $out[count($out)-1];
    var_dump($out);
?>


这是一个HTML检索内容示例:

检查您的模式。希望它可以有所不同。在结果状态中,还有一个div。如果您提供正确的模式,它将显示输出。还有一件事不需要解码文件内容($url)。请删除基本的解码功能并尝试使用它。

使用此搜索url:

这个url只返回html,可以像yo一样用正则表达式轻松解析。谷歌将此url用于不支持javascript的浏览器(尝试在浏览器上禁用javascript的情况下搜索)。普通url(您使用的url)返回一个外观复杂的javascript,该javascript反过来创建您在页面上看到的html

<?php
    $q = "http://zetcode.com/";
    $url = "https://www.google.co.in/search?output=search&sclient=psy-ab&q=link%3A".urlencode($q);
    $content = file_get_contents($url);
    $pattern = "/(<div id=\"resultStats\">About ([0-9,]+) results)|(<div id=\"resultStats\">([0-9,]+) results)/";
    preg_match($pattern, $content, $out);
    $googlelinks = $out[count($out)-1];
    var_dump($out);
?>


base64\u为什么要解码普通html?请显示您试图解析的实际html。下面是一个检索html内容的示例:不要介意base64,我使用base64存储一个html示例,这样它看起来就不那么凌乱,而且我不必一直查询google,这可能会让我被禁止。我忘了删除这个函数,因为我用file_get_content将它替换为发布到这里的内容。我知道,这就是我显然需要帮助的地方,有人能找出为什么我的模式不起作用,直到什么都不起作用,我试了试,数组仍然返回null:(我测试了它,得到了.array(size=5)0=>string'5 results'(length=31)1=>string''(length=0)2=>string''(length=0)3=>string'5 results'(length=31)4=>string'5'(length=1)看起来我只需要解压缩openssl扩展,谢谢:D