環境
OS: CentOS 6.8
php-phantomjs: 4.x
php-phantomjs: 4.x
当手順は新規の環境にphp-phantomjsを導入する手順を説明しております。
既存の環境で実施する際は事前の環境に戻せるようにバックアップ等を取るなどしたうえで実施することをおすすめします。
既存の環境で実施する際は事前の環境に戻せるようにバックアップ等を取るなどしたうえで実施することをおすすめします。
composerが利用できるかどうかの確認
コマンドラインより以下のコマンドを実行してcomposerが利用できる状態かどうかを確認して下さい。
$ composer -V
このコマンドを実行してcomposerのバージョンが確認できれば以後の手順でphp-phantomjsの実行環境を構築ができるはずです。もし、レンタルサーバーなどで「command not found」が発生して実施できなかった場合は以下の方法でcomposerを導入できる可能性がありますので参考にして下さい。
レンタルサーバーなどでcomposerを利用したい場合、標準で準備されていない場合があります。
そういった場合直接co...
composer.jsonの準備
以下の内容で「composer.json」という名前でファイルを準備して下さい。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
{ "scripts": { "post-install-cmd": [ "PhantomInstaller\\Installer::installPhantomJS" ], "post-update-cmd": [ "PhantomInstaller\\Installer::installPhantomJS" ] }, "require": { "jonnyw/php-phantomjs": "4.*" } } |
インストールの実行
前述の「composer.json」を準備(保存)したディレクトリ上で以下のコマンドを実行するとphp-phantomjsのインストールが開始されます。コマンドを実行したカレントディレクトリにphp-phantomjsの環境が準備されます。
$ composer install
実行すると以下のような出力とともにコマンドを実行したカレントディレクトリにphp-phamtpmjsに必要なファイルがインストール(配置)されます。
以下の様にphp-phantomjsに必要なファイル(ディレクトリ)が準備され、php-phantomjsが利用できるようになります。
vendor/
├bin/
├composer/
├jakoch/
├jonnyw/
├symfony/
├twig/
└autoload.php
composer.lock
├bin/
├composer/
├jakoch/
├jonnyw/
├symfony/
├twig/
└autoload.php
composer.lock
簡単なサンプルの実行
php-phantomjsのページに簡単なサンプル(Basic Request)が紹介されていますので、それを参考にして作成したphpを実行してみます。php-phantomjsをインストールしたディレクトリにファイル名(なんでも良いのですが)を「test.php」として以下のプログラムを準備して下さい。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?PHP require_once( 'vendor/autoload.php' ); use JonnyW\PhantomJs\Client; $client = Client::getInstance(); $client->getEngine()->setPath('vendor/bin/phantomjs'); $request = $client->getMessageFactory()->createRequest(); $response = $client->getMessageFactory()->createResponse(); $request->setMethod('GET'); $request->setUrl('https://pg.kdtk.net/sample/phamtomjs_test.html'); $client->send($request, $response); echo "request url: " . $request->getUrl() . "\n"; echo "response: " . $response->getStatus() . "\n"; if($response->getStatus() === 200) { echo "content: \n"; echo $response->getContent(); } ?> |
コマンドラインから実行して以下のようになれば成功です。
$ php test.php
Content-type: text/html; charset=UTF-8
request url: https://pg.kdtk.net/sample/phamtomjs_test.html
response: 200
content:
<head>
</head>
<body>
hello php-phantomjs
</body>
$
Content-type: text/html; charset=UTF-8
request url: https://pg.kdtk.net/sample/phamtomjs_test.html
response: 200
content:
<head>
</head>
<body>
hello php-phantomjs
</body>
$