PHANTOMJS PHP: пустой объект ответа

Когда я пытаюсь сохранить файл локально, объект ответа возвращается null. Страница, которую я пытаюсь захватить, занимает много времени загрузки, для которого мне нужен обратный вызов, чтобы уведомить меня, когда все ресурсы страницы полностью загружены. Правильно ли мой подход?

Если вы не пытаетесь сохранить файл локально, возвращаемый объект ответа не является нулевым.

Здесь мой код:

$client = Client::getInstance();
$client->getEngine()->setPath('path/to/phantomjs');
    $client->isLazy();

    $request  = $client->getMessageFactory()->createPdfRequest('http://google.com');
    $response = $client->getMessageFactory()->createResponse();

    $file = 'path/binfile.pdf';

    $request->setOutputFile($file);

    $client->send($request, $response);

Как я могу достичь и узнать, когда все ресурсы страницы полностью загружены?

Ответ 1

Решение для меня заключалось в установке phantomjs из моего менеджера пакетов (sudo apt-get install phantomjs) и отсылайте к нему движок чем на двоичный файл phantomjs, загруженный композитором.

$this- > client- > getEngine() → setPath ( '/USR/BIN/phantomjs');

Для получения дополнительной информации обратитесь к этой теме: https://github.com/jonnnnyw/php-phantomjs/issues/86

или даже этот поток: https://github.com/jonnnnyw/php-phantomjs/issues/57

Ответ 2

У меня такая же проблема. Я использовал jonnyw/php-phantomjs в laravel.

Функция setTimeout пользователя. меня устраивает. попробуйте это.

$request->setOutputFile($file);
$request->setTimeout(10000);

Надеюсь, что это поможет.