百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
S

screen

> 编程语言
开源

基于 PHP 和 PhantomJS 的网站截图工具

630 stars0 点赞0 次浏览
访问官网GitHub

工具介绍

基于 PHP 和 PhantomJS 的网站截图工具

Screen

Web site screenshot tool based on PHP and PhantomJS You can use it to take screenshots for testing or monitoring service

Install

Via Composer

bash
$ composer require microweber/screen

If on any Unix system, you need to make the bin executable chmod +x /path/to/screen/bin/phantomjs

The directory /path/to/screen/jobs must be writable as well.

Linux requirements

  • FontConfig - apt-get/yum install fontconfig
  • FreeType - apt-get/yum install freetype*

Usage

With this library you can make use of PhantomJs to screenshot a website.

Check our demo or read the following instructions.

Creating the object, you can either pass the URL on the constructor or set it later on

php
use Screen\Capture;

$url = 'https://github.com';

$screenCapture = new Capture($url);
// or
$screenCapture = new Capture();
$screenCapture->setUrl($url);

You can also set the browser dimensions

php
$screenCapture->setWidth(1200);
$screenCapture->setHeight(800);

you can set also DOM Element Position (top, left)

php
$screenCapture->setTop(100);
$screenCapture->setLeft(100);

This will output all the page including the content rendered beyond the setted dimensions (e.g.: all the scrollable content), if you want just the content inside those boudaries you need to clip the result

php
// You also need to set the width and height.
$screenCapture->setClipWidth(1200);
$screenCapture->setClipHeight(800);

Some webpages don't have a background color setted to the body, if you want you can set the color using this method

php
$screenCapture->setBackgroundColor('#ffffff');

You can also set the User Agent

php
$screenCapture->setUserAgentString('Some User Agent String');

And the resulted image type

php
// allowed types are 'jpg' and 'png', default is 'jpg'.
$screenCapture->setImageType(Screen\Image\Types\Png::FORMAT);
// or
$screenCapture->setImageType('png');
  • If the format is jpg and the background color is not set, the default value will be #FFFFFF, if png the default background color will be transparent.

And most importantly, save the result

php
$fileLocation = '/some/dir/test.' . $screen->getImageType()->getFormat();
$screenCapture->save($fileLocation);

// you don't need to set the file extension
$fileLocation = '/some/dir/test';
$screenCapture->save($fileLocation); // Will automatically determine the extension type

echo $screenCapture->getImageLocation(); // --> /some/dir/test.png

Injection your own JS into the web page

You can also run your own JS scripts or snippets before the screenshot.

For that we have the method includeJs, here are some usage examples:

…

Just use this method before calling save(...)

Passing options to PhantomJS

You can set the options that will be passed to the PhantomJS binary.

php
$screenCapture->setOptions([
    'ignore-ssl-errors' => 'yes',
    // '--ignore-ssl-errors' => 'yes', // dashes may be omitted
]);

Other configurations

Additionally to the basic usage, you can set so extra configurations.

You can change the where the PhantomJS binary file is.

php
$screenCapture->binPath = '/path/to/bin/dir/';
// This will result in /path/to/bin/dir/phantomjs

Change the jobs location

php
$screenCapture->jobs->setLocation('/path/to/jobs/dir/');
echo $screenCapture->jobs->getLocation(); // -> /path/to/jobs/dir/

And set an output base location

php
$screenCapture->output->setLocation('/path/to/output/dir/');
echo $screenCapture->output->getLocation(); // -> /path/to/output/dir/

// if the output location is setted
$screenCapture->save('file.jpg');
// will save the file to /path/to/output/dir/file.jpg

You can also clean/delete all the generated job files like this:

php
$screenCapture->jobs->clean();

License

The MIT License (MIT). Please see License File for more information.

Credits

  • Peter Ivanov
  • André Filipe
  • All Contributors

Thanks to the PhantomJS (LICENSE) guys for creating their awesome WebKit scripting interface.

This tool was originally created to take screenshots for Microweber

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

PHP

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言