#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;
Должно работать: