PHP有没什么办法实现网页在线截图? 不考虑第三方插件 因为我想兼容多平台比如LINUX WINDOWS 在往上找到一段DOM的 能截图但感觉不是很爽 大家有知道的不?
DOM代码
$info = parse_url($url);
$pic = empty($name) ? BF_ROOT.'/upload/'.$info['host'].'.jpg' : $name;
$browser = new COM("InternetExplorer.Application") or die("Can't start Internet Explorer");
try {
$handle = $browser->HWND;
$browser->AddressBar = false;
$browser->MenuBar = false;
$browser->ToolBar = false;
$browser->StatusBar = false;
$browser->FullScreen = true;
$browser->Visible = true;
$browser->Silent = true;
$browser->Navigate($url);//你的页面
while ($browser->Busy) {
com_message_pump(4000);
}
} catch (com_exception $e) {
echo $e;
}
$im = imagegrabwindow($handle, 0);
imagepng($im, $pic);
$browser->Quit();
DOM代码
$info = parse_url($url);
$pic = empty($name) ? BF_ROOT.'/upload/'.$info['host'].'.jpg' : $name;
$browser = new COM("InternetExplorer.Application") or die("Can't start Internet Explorer");
try {
$handle = $browser->HWND;
$browser->AddressBar = false;
$browser->MenuBar = false;
$browser->ToolBar = false;
$browser->StatusBar = false;
$browser->FullScreen = true;
$browser->Visible = true;
$browser->Silent = true;
$browser->Navigate($url);//你的页面
while ($browser->Busy) {
com_message_pump(4000);
}
} catch (com_exception $e) {
echo $e;
}
$im = imagegrabwindow($handle, 0);
imagepng($im, $pic);
$browser->Quit();
解决方案 »
- PHP调用另外一个function
- 用什么方法 能阻挡 locus7s 攻击
- 汗!!!!!
- php查询多字段,高手帮帮忙
- php中读取当前时间的问题
- 用php发送电子邮件时出现SMTP server response: 553 authentication is required错误
- 求一条正则:取出网页数据里面所有的以http:开头的压缩包地址(RAR,ZIP)
- 请问,如何利用PERL将生成的表格以excel图表的形式嵌套在浏览器中显示.
- PHP 开发环境的选择、建立及使用[第一部分][原创]
- 谢谢anybody1,但不知道为什么,我在另外一个贴子不能给分?
- 没法打印第二页
- 今天面试题出了7个,但是一个都没答上,真郁闷,大家帮我看看,是我太菜了还是问题太难了
效率不太好。
这种是能够截图 。 就是速度太慢了 要网速快才行. 想知道有没什么方法PHP实现类似功能的 加其他第三方也行 只要兼容各平台就好了
/**
* netScreen
* 网页模拟POST方式截图
* @param $Url 要截图的URL
* @param $CallPic 返回类型 原图[y] 全屏[q] 顶屏[d]
* @param $Width 返回宽度 对原图无效
* @param $Ext 返回格式 GIF[1] JPG[2] PNG[3]
* @return string
*/
function netScreen($Url, $CallPic = 'y', $Width = '80', $Ext = '1')
{
$WidthArray = array(80, 125, 250, 600, 800);
$ExtArray = array(1,2,3);
in_array($Width, $WidthArray) ? '' : die('netScreen flag error!');
in_array($Ext, $ExtArray) ? '' : die('netScreen flag error!');
$ScreenUrl = 'http://www.zzsky.cn/tool/webthumb/get.php';
$PostData = array('q'=>$Url);
$Content = doPost($ScreenUrl, $PostData);
preg_match('#\?dt=([\d]+)#', $Content['body'], $Matches);
$Matches[1] = isset($Matches[1]) ? $Matches[1] : '';
switch ($CallPic){
case 'y': $PicUlr = "http://www.zzsky.cn/tool/webthumb/image.php?dt={$Matches[1]}&url={$Url}";
break;
case 'q':
$PicUlr = "http://www.zzsky.cn/tool/webthumb/image.php?dt={$Matches[1]}&url={$Url}&image_type={$Ext}&x={$Width}";
break;
case 'd':
$PicUlr = "http://www.zzsky.cn/tool/webthumb/image.php?dt={$Matches[1]}&url={$Url}&image_type={$Ext}&type=p&x={$Width}";
break;
default:die('netScreen flag error!');
}
return $PicUlr;
}
http://www.runphp.com/?c=site