use Goutte\Client;
$results = new StdClass;
$client = new Client();
$crawler = $client->request('GET', $url);
$crawler->filter('.div')->each(function ($node)
{
$item = new StdClass;
$item->test = 'hello';
$results->data[] = $item;
});
var_dump($results);
var_dump($results)
的输出始终是一个完全空的对象:
object(stdClass)[176]
网址是正确的,过滤器是正确的,该类正在运行,但是如果我使用$node
并从文本中提取HTML,则它在循环中工作,但数据不会保存在其中$results
对象。
如上例所示,文字'你好'最终$item
对象中甚至不存在$results
类。
答案 0 :(得分:7)
你可以试试这个:
$client = new Client();
$crawler = $client->request('GET', $url);
$results = $crawler->filter('.div')->each(function (Crawler $node, $i) {
return $node->text();
});
var_dump($results);
检查Symfony website上的参考。
答案 1 :(得分:3)
您需要允许匿名函数访问本地变量,顺便说一下我没有看到您在封闭内使用$node
function ($node) use ($results)
{
$item = new StdClass;
$item->test = 'hello';
$results->data[] = $item;
}