php-phantomjs中文文檔用法樣本集合__js

來源:互聯網
上載者:User

php-phantomjs中文用法樣本集合.安裝那些就不講了,都是很簡單的東西.
以下是對英文版的文檔API整理的集合DEMO,根據自身選取對應內容組成頁面即可

 <?phprequire 'vendor/autoload.php';use JonnyW\PhantomJs\Client;//引入用戶端/*自訂模組*/use JonnyW\PhantomJs\DependencyInjection\ServiceContainer;$location = '/path/to/your/script/directory';//自訂模組所在檔案夾$serviceContainer = ServiceContainer::getInstance();$procedureLoader = $serviceContainer->get('procedure_loader_factory')->createProcedureLoader($location);//詳細參見本文頁尾/*正常執行個體*/$client = Client::getInstance();//執行個體/*自訂模組*/ $client->setProcedure('my_procedure');//載入一個名為my_procedure.proc的自訂js模組,詳見本文頁尾$client->getProcedureLoader()->addLoader($procedureLoader);//自動載入模組/*自設phantomjs參數*/$client->getEngine()->addOption('--load-images=true');//phantomjs參數,參數地址:http://phantomjs.org/api/command-line.html$client->getEngine()->addOption('--config=/path/to/config.json');//除了單獨配置命令,還可配置命令集配置的json檔案::本文頁尾列舉了常用的配置/*調試與緩衝*/$client->getEngine()->debug(true);//允許或禁止調試$client->getLog(); //開啟調試則輸出結果 $client->getProcedureCompiler()->clearCache();//清除緩衝.建議允許前進行清除$client->getProcedureCompiler()->enableCache();//允許緩衝,建議開啟 $client->getProcedureCompiler()->disableCache();//禁止讀取緩衝/*渲染與請求方式*/ $link='http://jonnnnyw.github.io/php-phantomjs/4.0/3-usage/#on-load-finished';//請求的url$client->isLazy(); // 是否讓用戶端等待所有資源載入完畢,開啟此項務必開始setTimeout,避免輪詢頁面不斷等待.$request = $client->getMessageFactory()->createRequest();$response = $client->getMessageFactory()->createResponse();$request->setUrl($link);$request->setMethod('GET');//可GET|POST|OPTIONS|HEAD|DELETE|PATCH|PUT$request->setTimeout(5000);//超過指定時間則中斷渲染$request->setDelay(5);//設定延遲5秒$request->setRequestData(array('param1' => 'Param 1','param2' => 'Param 2'));//POST時發送的資料$request->addHeader('custom_header_key', 'custom_header_value');//自訂頭資訊$client->send($request, $response);//發送請求/*截圖(圖或PDF檔案)*/$request->setRepeatingHeader('<h1>Header <span style="float:right">%pageNum% / %pageTotal%</span></h1>',100);//自訂PDF類的頭尾及其高度$request->setRepeatingFooter('<footer>Footer <span style="float:right">%pageNum% / %pageTotal%</span></footer>',100);//自訂PDF類的頭尾$request->setViewportSize(200, 100);//設定可視寬高 $request->setBodyStyles(array('backgroundColor' => '#ff0000'));//設定紙張背景色 $request->setFormat('A4');//設定尺寸格式,如A4 $request->setOrientation('landscape');//設定紙張方向如縱向$request->setPaperSize('10cm', '20cm');//PDF紙張大小$request->setMargin('1cm');//PDF紙張邊距$request->setOutputFile('E:\php\file.jpg|file.pdf');//截圖或PDF儲存路徑$request->setCaptureDimensions(240, 320, 10, 20);//設定截圖寬高與邊距$width, $height, $top, $left/*響應結果*/$response->getHeaders();//返回頭組成的數組$response->getHeader();//返回頭$response->getStatus();//返回狀態代碼:200則正確,其餘錯誤.$response->getContent();//返回本文$response->getContentType();//返回本文類型$response->getUrl();//返回請求地址$response->getRedirectUrl();//返回重新導向後的地址$response->isRedirect();//返回是否重新導向$response->getConsole();//返回JS控制台內容

A. 常用命令參數:
1.--ignore-ssl-errors=[true|false]忽略SSL錯誤,例如到期或自我簽署憑證錯誤(預設為false)。
2.--load-images=[true|false]載入所有內嵌影像(預設為true)。
//其它的很少用得到,http://phantomjs.org/api/command-line.html

B.自訂模組用法:
global_variables.partial 允許任何javascript變數注入指令碼的頂部。
page_clip_rect.partial 如果請求是螢幕捕獲,這將定義頁面裁剪矩形。
page_custom_headers.partial 在頁面對象上設定任何自訂標題。
page_on_error.partial 定義分頁錯誤執行的代碼。
page_on_resource_received.partial 定義在資源接收時執行的代碼。
page_on_resource_timeout.partial 定義在資源逾時時執行的代碼。
page_open.partial 定義頁面開啟時執行的代碼。
page_paper_size.partial 如果請求是PDF輸出,這將設定紙張尺寸。
page_settings.partial 最明顯地定義任何版面設定資源逾時值。
page_viewport_size.partial 如果在請求中定義,請設定視口大小。
page_body_styles.partial 在請求的頁面的body標籤上設定CSS樣式。
phantom_on_error.partial 定義在PhantomJS錯誤中執行的代碼。
procedure_capture.partial 定義請求是捕獲請求時執行的代碼。
procedure_default.partial 定義為預設請求執行的代碼。
procedure_pdf.partial 定義請求是PDF請求時執行的代碼。
編譯的時候所對應的位置:https://github.com/jonnnnyw/php-phantomjs/blob/master/src/JonnyW/PhantomJs/Resources/procedures/http_default.proc

除了上方的預設模組之外,你也可以自訂一個js模組.
首先建立至少755許可權的.proc檔案,例如/my_procedure(名稱隨意,上面引入時無需尾碼).proc

//.proc樣本指令碼var page  = require('webpage').create();page.open ('{{ input.getUrl() }}', '{{ input.getMethod() }}', '{{ input.getBody() }}', function (status) {//你的js指令碼phantom.exit(1);//退出});...

//更多細節,詳見.http://jonnnnyw.github.io/php-phantomjs/4.0/4-custom-scripts/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.