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 相关文章推荐
php json_encode奇怪问题说明
Sep 27 PHP
php防止sql注入代码实例
Dec 18 PHP
php5.3 goto函数介绍和示例
Mar 21 PHP
php实现mysql封装类示例
May 07 PHP
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
Apr 14 PHP
PHP实现删除字符串中任何字符的函数
Aug 11 PHP
php如何实现只替换一次或N次
Oct 29 PHP
php解析xml 的四种简单方法(附实例)
Jul 11 PHP
详解PHP编码转换函数应用技巧
Oct 22 PHP
详解cookie验证的php应用的一种SSO解决办法
Oct 20 PHP
PHP异步进程助手async-helper
Feb 05 PHP
TP5框架实现一次选择多张图片并预览的方法示例
Apr 04 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
深入掌握include_once与require_once的区别
2013/06/17 PHP
php单例模式实现方法分析
2015/03/14 PHP
PHP引用的调用方法分析
2016/04/25 PHP
php字符串操作常见问题小结
2016/10/11 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
详解PHP文件的自动加载(autoloading)
2018/02/04 PHP
Jquery 滑入滑出效果实现代码
2010/03/27 Javascript
浅析XMLHttpRequest的缓存问题
2013/12/13 Javascript
深入理解JavaScript编程中的原型概念
2015/06/25 Javascript
详解Vue2 无限级分类(添加,删除,修改)
2017/03/07 Javascript
自带气泡提示的vue校验插件(vue-verify-pop)
2017/04/07 Javascript
原生js轮播特效
2017/05/18 Javascript
bootstrap datepicker插件默认英文修改为中文
2017/07/28 Javascript
vue组件初学_弹射小球(实例讲解)
2017/09/06 Javascript
AngularJS使用$http配置对象方式与服务端交互方法
2018/08/13 Javascript
Node.js操作MongoDB数据库实例分析
2020/01/19 Javascript
Openlayers学习之地图比例尺控件
2020/09/28 Javascript
vue3+typescript实现图片懒加载插件
2020/10/26 Javascript
python二叉树的实现实例
2013/11/21 Python
Python获取服务器信息的最简单实现方法
2015/03/05 Python
Python多线程编程简单介绍
2015/04/13 Python
Python利用QQ邮箱发送邮件的实现方法(分享)
2017/06/09 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
2019/02/20 Python
Python3 文章标题关键字提取的例子
2019/08/26 Python
简单了解Django ORM常用字段类型及参数配置
2020/01/07 Python
详解Ubuntu环境下部署Django+uwsgi+nginx总结
2020/04/02 Python
Python 将代码转换为可执行文件脱离python环境运行(步骤详解)
2021/01/25 Python
利用Python过滤相似文本的简单方法示例
2021/02/03 Python
Kathmandu澳洲户外商店:新西兰户外运动品牌
2017/11/12 全球购物
机电一体化专业应届生求职信
2013/11/27 职场文书
入党申请人的自我鉴定
2013/12/01 职场文书
地质工程专业毕业生求职信
2014/08/08 职场文书
会计主管岗位职责
2015/04/02 职场文书
男人帮观后感
2015/06/18 职场文书
Python中os模块的简单使用及重命名操作
2021/04/17 Python
Github 使用python对copilot做些简单使用测试
2022/04/14 Python