PHP-оболочка для PhantomJS без вывода

#php #codeigniter #phantomjs

#php #codeigniter #phantomjs

Вопрос:

Итак, я использую: https://github.com/jonnnnyw/php-phantomjs PHP-оболочку для Phantom JS. Я следовал инструкциям и использовал composer для установки пакета:

php composer require jonnyw/php-phantomjs:2.*

Я использую Codeigniter, поэтому мне пришлось объявить use перед определением моего класса:

 use JonnyWPhantomJsClient;
class WebScrape extends CI_Controller { require 'vendor/autoload.php'; ..}
  

Затем я использовал этот код:

     $client = Client::getInstance();
    $client->setPhantomJs('/var/www/PhantomJS/vendor/bin/');
    $request = $client->getMessageFactory()->createRequest('GET', 'http://php.net/manual/en/ref.image.php#56144');

    $response = $client->getMessageFactory()->createResponse();

    // Send the request
    $client->send($request, $response);    
    echo $response->getStatus();
    if($response->getStatus() === 200) {

        // Dump the requested page content
        echo $response->getContent();
    }
  

Я не получаю ошибок, но $response->getStatus(); возвращает мне 0. Я не знаю, как это отладить, поскольку у меня также нет ошибок PHP. Кто-нибудь знает, как решить эту проблему?

Ответ №1:

Для тех, кто борется с этой проблемой, выполните следующее:

Удалить phantomjs

 sudo apt-get remove --auto-remove phantomjs
  

Чистая установка

 cd /usr/local/share
sudo wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.7-linux-x86_64.tar.bz2
sudo tar xjf phantomjs-1.9.7-linux-x86_64.tar.bz2
sudo ln -s /usr/local/share/phantomjs-1.9.7-linux-x86_64/bin/phantomjs /usr/local/share/phantomjs
sudo ln -s /usr/local/share/phantomjs-1.9.7-linux-x86_64/bin/phantomjs /usr/local/bin/phantomjs
sudo ln -s /usr/local/share/phantomjs-1.9.7-linux-x86_64/bin/phantomjs /usr/bin/phantomjs
  

Добавьте следующую строку под $client = Client::getInstance();

 $client->setPhantomJs('/usr/local/share/phantomjs');
  

Теперь убедитесь, что require 'vendor/autoload.php'; предшествует use JonnyWPhantomJsClient;

Должно работать: