1

次のコードは、Windows でのみ使用できます。

<?php
  ...
  $im = imagegrabwindow($handle);
  ...      
  imagedestroy($im);
?>

unix (debian) php 環境での解決策は何ですか? php cli プログラムでスクリーン キャプチャを取得しますか?

4

1 に答える 1

1

つまり、Firefox から画面をキャプチャしたいようですね :p.

ヘッドレス サーバーの場合は、最初に Xvfb がインストールされていることを確認してから起動しXvfb :2 -screen 0 1024x768x24&ます (もちろん、必要に応じてディスプレイ:2と解像度1024x768x24を変更できます)。

Firefox を実行して、そのディスプレイで特定のページを開きます。Firefox がページを開くのを少し待つので、aなどを実行します。DISPLAY=:2 firefox http://www.example.comsleep 10

そして、ImageMagick(もちろんインストールする必要があります)からいくつかの「魔法」を投入して、画面をファイルにキャプチャします:import -window root -display :2 example.png.

そして今、あなたの処理の楽しみが始まります:p.

以下は、すべてをまとめた小さな bash スクリプトです (Xvfb が動作するためには、既に実行されている必要があります)。

#!/bin/bash
export DISPLAY=":2" /usr/bin/firefox "$1"&
/bin/sleep 10
/usr/bin/import -window root -display :2 "$2"
killall firefox-bin

これを PHP から呼び出し、スクリーンショットの URL とファイル名をパラメーターとして指定します。

ところで、サーバーに X がある場合は、Xvfb 部分をスキップして、実行中の X サーバー表示を使用できます (ほとんどの場合:0)。

于 2011-01-18T13:13:36.097 に答える