【问题标题】:Generating Website screenshots on CentOS using PHP使用 PHP 在 CentOS 上生成网站截图
【发布时间】:2011-03-28 23:01:08
【问题描述】:

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

谢谢

【问题讨论】:

    标签: php centos web thumbnails


    【解决方案1】:

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

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

    这里列出了更多:Command line program to create website screenshots (on Linux)

    【讨论】:

    • 我无法通过 php 运行此命令。它必须通过终端运行。我想通过 PHP 自动创建缩略图。 exec 在 php 上启用,但它只是这个特定的命令。我有一个专用服务器,所以我可以安装应用程序,所以你可以向我推荐这些。但是应用程序应该能够通过 PHP 运行。
    • 您是否收到特定的错误消息? (使用2>/dev/stdout 捕获它)。如果您无法从 exec() 启动此命令,那么其他选项(firefox 和捕获 X11 根窗口)将不会工作得更好。 -- 另一个通常推荐的替代方法是 wkhtml2pdf code.google.com/p/wkhtmltopdf (然后需要第二步将其再次转换为 PNG 图像..)
    • 如果您不介意,请给我安装 wkhtml2pdf 及其 php 对应物的步骤。谢谢...:)
    • 刚刚试了一下。这非常简单。我下载了code.google.com/p/wkhtmltopdf/downloads/… 并提取了它。这是一个单一的可执行文件,小题大做。然后用exec("./wkhtmltoimage-amd64 http://google.com/ google.png"); 调用它,它应该会生成一个PNG。 (这是一个生成图像而不是 PDF 截图的特殊版本。酷。)
    【解决方案2】:

    我认为这是不可能的,因为 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
        }
    }
    

    【讨论】:

    • 虽然此信息准确无误,但它与截取渲染网页的屏幕截图没有太大关系。
    猜你喜欢
    • 2011-05-31
    • 1970-01-01
    • 1970-01-01
    • 2020-09-22
    • 2011-04-14
    • 1970-01-01
    • 2023-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多