PHP proc_open调用程序并获取屏幕截图
我正在尝试运行一个进程,使用这个很酷的软件() 此命令在windows命令行上工作,并创建网站的.png文件:PHP proc_open调用程序并获取屏幕截图,php,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 2
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);
运行脚本时不会创建该文件。我能试试什么吗 答案是文件名参数格式化和转义一些双引号,因为命令行程序对其参数进行了挑选
$url = "http://www.msn.com";
$output_path = "c:/wamp64/www/my-site/";
$cmd = "SiteShoter.exe /URL \"" . $url . "\" /Filename " . $output_path . "test-%date:yyyy-MM-dd%@%time:HHmm%.png /BrowserAutoSize 1 /MaxBrowserHeight 25000 MaxBrowserWidth 1500 /BrowserTimeOut 2000";
$descriptorspec = array();
$cwd = 'C:\Program Files\SiteShoter';
$env = NULL;
if ( $process = proc_open($cmd, $descriptorspec, $pipes, $cwd, $env) ) {
proc_close($process);
}
无论如何,如果有人正在寻找一个好的程序来捕获网页的图像,我推荐NirSoft的SiteShoter