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();

解决方案 »

  1.   

    jquery 截图. js  有啥兼容不兼容的?呵呵
      

  2.   

    jquery好像有很多插件可以实现截图的前台效果,配合php对图片处理,就可以实现了,我做过
      

  3.   

    我处理的是网页 不是图片?  问题是用什么方法吧网页存为图片格式哦~~~~ 找了很多 JQUERY都是对图片进行截图~!!
      

  4.   

    类似 http://www.shrinktheweb.com 这种的 怎么实现的呢?
      

  5.   

    只能这么玩了。js截图取得坐标。 然后扔给phpGD处理。
    效率不太好。
      

  6.   

    楼主用你的com结合坐标截取快照
      

  7.   


    这种是能够截图 。 就是速度太慢了 要网速快才行. 想知道有没什么方法PHP实现类似功能的 加其他第三方也行 只要兼容各平台就好了
      

  8.   

    找到了个网页截图的 用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