Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:获取facebook喜欢的url_Php - Fatal编程技术网

PHP:获取facebook喜欢的url

PHP:获取facebook喜欢的url,php,Php,我正在尝试获取页面上喜欢的信息,因为我想按喜欢的人来排序我网站上的帖子。我决定通过抓取页面来完成,并将每个帖子id的类似内容存储在db中,然后我就可以使用db进行订购了。(我可以每小时或类似的时间运行这个“刮板”来更新结果) 我正在做以下工作: $url = "http://www.mydomain.com"; $html = file_get_contents($url); $dom= new domDocument; $dom->loadHTML($html); 我得到了以下

我正在尝试获取页面上喜欢的信息,因为我想按喜欢的人来排序我网站上的帖子。我决定通过抓取页面来完成,并将每个帖子id的类似内容存储在db中,然后我就可以使用db进行订购了。(我可以每小时或类似的时间运行这个“刮板”来更新结果)

我正在做以下工作:

 $url = "http://www.mydomain.com";
 $html = file_get_contents($url);
 $dom= new domDocument;
 $dom->loadHTML($html);
我得到了以下错误:

Notice: DOMDocument::loadHTML() [domdocument.loadhtml]: Namespace prefix fb is not defined in Entity, line: 36 in C:\xampp\htdocs\page.php on line 13

Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: Tag fb:like invalid in Entity, line: 36 in C:\xampp\htdocs\page.php on line 13
不知怎的,喜欢的东西没有显示出来?如果我这样做:

 $url = "http://www.mydomain.com";
$html = file_get_contents($url);
echo $html;
preg_match_all(
    '/<div id="LikePluginPagelet".*?>.*?<\/div>/s',
    $html,
    $posts,
    PREG_SET_ORDER
);

print_r($posts)
https://graph.facebook.com/?ids=<URL>
$url=”http://www.mydomain.com";
$html=文件内容($url);
echo$html;
预赛(
“/.*?/s”,
$html,
$posts,
预设定顺序
);
打印(员额)
第一个“echo”实际上显示了整个页面,但随后的打印只显示
Array()

有没有可能有些东西不能通过php抓取?以下是一个示例页面:

您可以看到,在like所在的位置和like的数量,div的id为'LikePluginPagelet',但PHP无法获取其中的内容

更新:

你能通过抓取页面来编写代码,从这里获得500万个喜欢的人吗?或者任何其他包含许多类似内容的页面,如果我可以得到,我也可以在代码中使用它


谢谢

我认为您应该签出

我认为您应该签出

您在通过文件内容获取的html副本中找不到这些元素(如框),因为这些元素是用javascript创建的。因此,您需要页面的最终DOM才能以这种方式获得计数。不幸的是,对于PHP,这是不可能的

不过,你可以做的是收集所有有问题的URL,并根据Facebook API运行它们——你会很容易得到喜欢的东西,即使不需要任何访问令牌/等等。 请求如下所示:

 $url = "http://www.mydomain.com";
$html = file_get_contents($url);
echo $html;
preg_match_all(
    '/<div id="LikePluginPagelet".*?>.*?<\/div>/s',
    $html,
    $posts,
    PREG_SET_ORDER
);

print_r($posts)
https://graph.facebook.com/?ids=<URL>
https://graph.facebook.com/?ids=

在使用文件内容获取的html副本中找不到这些元素(如框),因为这些元素是用javascript创建的。因此,您需要页面的最终DOM才能以这种方式获得计数。不幸的是,对于PHP,这是不可能的

不过,你可以做的是收集所有有问题的URL,并根据Facebook API运行它们——你会很容易得到喜欢的东西,即使不需要任何访问令牌/等等。 请求如下所示:

 $url = "http://www.mydomain.com";
$html = file_get_contents($url);
echo $html;
preg_match_all(
    '/<div id="LikePluginPagelet".*?>.*?<\/div>/s',
    $html,
    $posts,
    PREG_SET_ORDER
);

print_r($posts)
https://graph.facebook.com/?ids=<URL>
https://graph.facebook.com/?ids=