PHP云打印类完整示例


Posted in PHP onOctober 15, 2016

本文实例讲述了PHP云打印类。分享给大家供大家参考,具体如下:

一个项目需求要几百台电脑都有打印功能,本来是想用网络打印机的,后来发现没有网络打印机,就自己动手写一个打印类算了。

类实现想法是:先把要打印的数据都收集起来,在用js调用window打印函数。目前就使用于IE。

类提供打印排队功能。(PS,说白了就是一条一条读取数据)

class Wprint{
   //收集打印代码
   private $data = array();
   //处理打印代码
   private $handle;
   public function __construct()
  {
    header("Content-type:text/html;charsetutf-8");
    $this->link(); //链接数据库
    $this->collect($_POST["username"],$_POST["content"],$_POST["ip"]);
    $this->handle();
   }
   //链接数据库
   private function link()
   {
    $link = mysql_connect('localhost', 'root', '123456');
    mysql_select_db('shen', $link);
    mysql_query('SET NAMES utf8');
   }
   //收集打印代码
   private function collect($username,$content,$ip)
   {
     $code["username"] = $username;
     $code["content"] = $this->check($content);
     $code["ip"] = $ip;
     $code["state"] = 0;
     $code["priority"] = 0;
     array_push($this->data,$code);//数据节点入栈
   }
   //处理打印代码入库
   private function handle()
   {
    foreach($this->data as $value)
    {
$sql = "insert into print(username,content,ip,state,priority)
values('{$value["username"]}','{$value["content"]}',
'{$value["ip"]}','{$value["state"]}','{$value["priority"]}')";
     $query = mysql_query($sql);
     if($query)
     {
      $id = mysql_insert_id(); //获取最近insert操作得到的ID
      echo "数据收集成功,正在排队打印,排队ID为".$id;
      $this->num($id);
     }
     else
     {
      echo "数据收集失败,请3秒后再一次提交";
     }
    }
   }
    //检查传人数据是否为空
   private function check($string)
   {
    if(strlen($string) == 0 || $string == " ")
    {
     echo "数据收集失败,打印内容为空";
     exit;
    }else
    {
     return $string;
    }
   }
   //获取打印排队人数
   private function num($id)
   {
    $sql = "select id from print where state=0 and id<".$id." order by id asc";
    $query = mysql_query($sql);
    $num = mysql_num_rows($query);
    echo ",您前面还有".$num."个人在排队";
   }
   //打印数据
   public function Yprint()
   {
     $sql = "select id,content from print where state=0 order by id asc limit 1";
     $query = mysql_query($sql);
     $row = mysql_fetch_array($query);
     if(!empty($row["content"]))
     {
      echo "<script tyle=\"text/javascript\">
            window.print();
        </script>";
      $id = $row["id"];
      $sql = "update print set state=1 where id=".$id;
      mysql_query($sql);
      echo "打印处理完成";
     }else
     {
       echo $row["content"];
     }
   }
}

思想很简单,收集数据再一个一个处理。 这样就不仅解决了网络打印的问题,还避免了网络打印打印过程排队的问题。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
基于HBase Thrift接口的一些使用问题及相关注意事项的详解
Jun 03 PHP
PHP eval函数使用介绍
Dec 08 PHP
PHP修改session_id示例代码
Jan 08 PHP
分享ThinkPHP3.2中关联查询解决思路
Sep 20 PHP
大家须知简单的php性能优化注意点
Jan 04 PHP
两种php实现图片上传的方法
Jan 22 PHP
Thinkphp连表查询及数据导出方法示例
Oct 15 PHP
centos下file_put_contents()无法写入文件的原因及解决方法
Apr 01 PHP
php表单文件iframe异步上传实例讲解
Jul 26 PHP
PHP PDOStatement::setAttribute讲解
Feb 01 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
May 29 PHP
ThinkPHP3.1.2 使用cli命令行模式运行的方法
Apr 14 PHP
PHP实现统计在线人数功能示例
Oct 15 #PHP
Thinkphp连表查询及数据导出方法示例
Oct 15 #PHP
PHP实现导出excel数据的类库用法示例
Oct 15 #PHP
PHP数组操作简单案例分析
Oct 15 #PHP
PHP链表操作简单示例
Oct 15 #PHP
PHP在线打包下载功能示例
Oct 15 #PHP
PHP文件上传处理案例分析
Oct 15 #PHP
You might like
centos 5.6 升级php到5.3的方法
2011/05/14 PHP
递归实现php数组转xml的代码分享
2015/05/14 PHP
通过PHP简单实例介绍文件上传
2015/12/16 PHP
PHP中的浅复制与深复制的实例详解
2017/10/26 PHP
Prototype使用指南之enumerable.js
2007/01/10 Javascript
2007/12/23更新创意无限,简单实用(javascript log)
2007/12/24 Javascript
jQuery 图像裁剪插件Jcrop的简单使用
2009/05/22 Javascript
jquery post方式传递多个参数值后台以数组的方式进行接收
2013/01/11 Javascript
Javacript实现颜色梯度变化和渐变的效果代码
2013/05/31 Javascript
artdialog的图片/标题以及关闭按钮不显示的解决方法
2013/06/27 Javascript
将json当数据库一样操作的javascript lib
2013/10/28 Javascript
JavaScript实现列表分页功能特效
2015/05/15 Javascript
JavaScript定时器setTimeout()和setInterval()详解
2017/08/18 Javascript
js使用generator函数同步执行ajax任务
2017/09/05 Javascript
深入理解Vue 组件之间传值
2018/08/16 Javascript
小程序转发探索示例
2019/02/19 Javascript
一个Java程序猿眼中的前后端分离以及Vue.js入门(推荐)
2019/04/19 Javascript
解决Layui 表格自适应高度的问题
2019/11/15 Javascript
vue自定义树状结构图的实现方法
2020/10/18 Javascript
[04:00]黄浦江畔,再会英雄——完美世界DOTA2 TI9应援视频
2019/07/31 DOTA
python自动化测试之setUp与tearDown实例
2014/09/28 Python
Python设计模式编程中Adapter适配器模式的使用实例
2016/03/02 Python
Python Web程序部署到Ubuntu服务器上的方法
2018/02/22 Python
python RabbitMQ 使用详细介绍(小结)
2018/11/08 Python
Python 串口读写的实现方法
2019/06/12 Python
python 实现12bit灰度图像映射到8bit显示的方法
2019/07/08 Python
信号生成及DFT的python实现方式
2020/02/25 Python
Python中私有属性的定义方式
2020/03/05 Python
详解Python 最短匹配模式
2020/07/29 Python
python 如何上传包到pypi
2020/12/24 Python
研发工程师的岗位职责
2013/11/18 职场文书
主题团日活动总结
2014/06/25 职场文书
干部作风整顿个人剖析材料
2014/10/06 职场文书
行为习惯主题班会
2015/08/14 职场文书
推普标语口号大全
2015/12/26 职场文书
win10截图快捷键win+shift+s没有反应无法截图怎么解决?
2022/08/14 数码科技