PHP proc_open调用程序并获取屏幕截图

时间:2018-05-14 14:40:14

标签: php

我正在尝试运行一个流程,使用这个很酷的软件(http://www.nirsoft.net/utils/web_site_screenshot.html)在PHP中截取网页截图

此命令适用于Windows命令行并创建网站的.png文件:

C:\Program Files\SiteShoter>SiteShoter.exe /URL http://www.msn.com /Filename "C:\wamp64\www\my-site\test.png" /BrowserAutoSize 1 /MaxBrowserHeight 25000 MaxBrowserWidth 1500 /BrowserTimeOut 2000 

我不明白如何使用proc_open在脚本中调用相同的命令。这是我尝试但没有成功的原因:

$cmd     = "SiteShoter.exe /URL http://www.msn.com /Filename 'C:\wamp64\www\my-site\test.png' /BrowserAutoSize 1 /MaxBrowserHeight 25000 MaxBrowserWidth 1500 /BrowserTimeOut 2000";
$desc    = [['pipe', 'r'], ['pipe', 'w'], ['pipe', 'w']]; //I don't know if this is needed
$cwd     = 'C:\Program Files\SiteShoter';
$process = proc_open($cmd, $desc, $pipes, $cwd);

运行脚本时不会创建文件。关于我可以尝试的任何想法?

1 个答案:

答案 0 :(得分:0)

答案结果是文件名参数格式化并转义一些双引号,因为命令行程序选择了它的参数。

C#

无论如何,如果有人想要一个好的程序来捕获网页的图像,我推荐NirSoft的SiteShoter。