Take Website Screenshots with PHP
GrabzIt's screenshot API is very flexible and can be called in many ways such as from a cronjob or a PHP web page. The best way to put website screenshots and more into your PHP application is by following these steps:
- Get your free Application Key and Secret.
- Download the free PHP Demo and Library and try it out.
- Find out the basics about how GrabzIt's API works by reading the below overview.
PHP API Overview
To use the API you will first need to create an instance of the GrabzItClient class, passing your application key and application secret from your GrabzIt account to the constructor.
// Create the GrabzItClient class
// Replace "APPLICATION KEY", "APPLICATION SECRET" with the values from your account!
$grabzIt = new GrabzItClient("APPLICATION KEY", "APPLICATION SECRET");
Then use one of the SetImageOptions, SetPDFOptions, SetAnimationOptions or SetTableOptions methods to request that the GrabzIt service take a screenshot of the URL passed to it.
// To take a image screenshot
// Or to take a PDF screenshot
// Or to convert online videos into animated GIF's
// Or to capture table(s)
Then use one of the following save methods. As you can see with the Save method the URL to the handler.php is specified this handler will process the callback from the service and save the resulting screenshot.
Alternatively if a publicly accessible callback handler is not available the synchonous SaveTo method can be used. This will force your application to wait while the screenshot is created so it should only be used were the Save method is not appropriate. Once the screenshot has been created it is automatically saved to the specified file path.
$filepath = "images/test.jpg";
When creating screenshots there are many more customizable options including; configuring the browser height, browser width, screenshot height, screenshot width, the delay before a screenshot is taken and the image format of the screenshot. However we also support creating PDF's, Animated GIF's, CSV's and more. For all these options please see the Client documentation.