使用 PHP 在 CentOS 上生成网站屏幕截图

发布于 2024-10-27 15:58:56 字数 65 浏览 1 评论 0原文

有没有免费的实用程序可以用来在centos上截取网页和网站的屏幕截图,并且可以通过php运行。

谢谢

Are there any free utilities that can be used to take screenshots of webpages and websites on centos and that can be run through php.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

你没皮卡萌 2024-11-03 15:58:56

有各种可用的命令行实用程序。大多数人都会启动 headless X11 中的浏览器引擎之一,然后进行屏幕截图。一个特别常见的是 khtml2png ,它可以像这样从 php 中使用(不确定是否有 CentOS 的预编译版本):

exec("khtml2png --width 800 --height 600 http://google.com/ img.png");

这里列出了更多:用于创建网站屏幕截图的命令行程序(在 Linux 上)

There are various commandline utilities available. Most start one of the browser engines in headless X11 and take a screenshot then. A particular common one is khtml2png which can be used from php like this (not sure if there is a precompiled version for CentOS):

exec("khtml2png --width 800 --height 600 http://google.com/ img.png");

A few more are listed here: Command line program to create website screenshots (on Linux)

初与友歌 2024-11-03 15:58:56

我认为这是不可能的,因为 PHP 不像浏览器那样渲染网站。

编辑:
但是,您可以使用 PHP cURL 脚本保存每个页面的原始未渲染 HTML。

例如:

$websites[] = 'http://google.com'; 
$websites[] = 'http://stackoverflow.com';
$websites[] = 'http://msn.com'; 
$websites[] = 'http://microsoft.com';

foreach ($websites as $site)
{
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $site);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $data = curl_exec($curl);
    curl_close($curl);

    if(!empty($data)) 
    {
        savePageToFile($data); //placeholder, not real function
    }
}

I don't think that's possible because PHP doesn't render websites like a browser does.

EDIT:
However, you could save each page's raw unrendered HTML using a PHP cURL script.

eg:

$websites[] = 'http://google.com'; 
$websites[] = 'http://stackoverflow.com';
$websites[] = 'http://msn.com'; 
$websites[] = 'http://microsoft.com';

foreach ($websites as $site)
{
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $site);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $data = curl_exec($curl);
    curl_close($curl);

    if(!empty($data)) 
    {
        savePageToFile($data); //placeholder, not real function
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文