我正在尝试制作一个脚本,每次运行时都会显示一个随机饮料配方。
我发现几个网站都有这个并在页面刷新时显示一个随机配方,但其中一些需要 3-4 秒才能加载,我试图避免这种情况。
所以我找到了这个网站:http ://www.shotdrinks.com/p/recipes/ ...它没有“显示随机食谱”功能。但是,此站点上的每个食谱都有编号,因此可以通过在 url 末尾添加 1 到 11000 之间的任何数字来“调用”它们。外汇。http://www.shotdrinks.com/p/recipes/4000。
因此,我每次运行时都使用此代码显示随机配方:
$min=1;
$max=11000;
$number=rand($min,$max);
$link = file_get_html("http://www.shotdrinks.com/p/recipes/$number");
但是,这会显示整个页面,包括菜单等。我只需要标题、玻璃类型、成分和混合方向。这些在不同的 div 中,fx。成分在一个名为“rIngredients”的 div id 中。所以我尝试了这个,以“隔离” div:
$link = file_get_contents("http://www.shotdrinks.com/p/recipes/$number");
$file = strip_tags($link, "<div>");
preg_match_all("#<div class=\"rIngredients\">(?:[^<]*)<\/div>#i", $file, $content);
print_r($content);
但我不能让它工作,它只是输出一个空数组。
我究竟做错了什么?这是做这种事情的“正确”方式吗?