前提
MacOSX sierra
MAMP
Chromeにて確認
PHP PhantomJS インストール済み
やりたい事
指定したURLの画面キャプチャを撮りたいのですが、ブラウザで何度やっても上手く行きませんでした。試しにterminalから実行するとあっさり撮れました。
以下はそのコードの枝葉を端折って結果の出力もシンプルにしたものですが、ブラウザとterminalでやはり結果ははっきり分かれます。
ブラウザでは
failed.
terminalでは
succeed.
と表示されます。
実際、キャプチャ画像が生成されるかどうかも同じ結果です。
ブラウザで成功するために何か出来ることはありますでしょうか?
よろしくお願いします。
get_capture.php
php
1<?php 2 3// set_time_limit(0); 4 5require_once('vendor/autoload.php'); 6 7use JonnyW\PhantomJs\Client; 8 9$url = "http://www.nihonkiin.or.jp/"; 10 11$png_file = "./capture/capture_" . $time_stamp . ".png"; 12$client = Client::getInstance(); 13$client->getEngine()->setPath('vendor/bin/phantomjs'); 14// $client->getEngine()->setPath('/usr/local/bin/phantomjs'); 15 16$request = $client->getMessageFactory()->createCaptureRequest($url); 17$response = $client->getMessageFactory()->createResponse(); 18 19// サイズ指定 20$width = 1200; 21$height = 1; 22$request->setViewportSize($width, $height); 23 24$request->setOutputFile($png_file); 25$client->send($request, $response); 26 27if ($response->getStatus() === 200) { 28 // echo $response->getContent(); 29 // header('Content-type: image/png'); 30 // readfile($png_file); 31 echo "succeed!"; 32} else { 33 echo "failed."; 34}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/07 20:42