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 判断变量类型实现代码
Oct 23 PHP
PHP 采集获取指定网址的内容
Jan 05 PHP
在php和MySql中计算时间差的方法
Apr 22 PHP
php curl post 时出现的问题解决
Jan 30 PHP
php+mysql实现无限分类实例详解
Jan 15 PHP
thinkPHP的表达式查询用法详解
Sep 14 PHP
php组合排序简单实现方法
Oct 15 PHP
老生常谈PHP数组函数array_merge(必看篇)
May 25 PHP
利用php操作memcache缓存的基础方法示例
Aug 02 PHP
PHP MVC框架中类的自动加载机制实例分析
Sep 18 PHP
Laravel框架表单验证操作实例分析
Sep 30 PHP
laravel5.6 框架邮件队列database驱动简单demo示例
Jan 26 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
php上传、管理照片示例
2006/10/09 PHP
在同一窗体中使用PHP来处理多个提交任务
2008/05/08 PHP
PHP实现货币换算的方法
2014/11/29 PHP
centos 7.2下搭建LNMP环境教程
2016/11/20 PHP
PHP后台微信支付和支付宝支付开发
2017/04/28 PHP
PHP实践教程之过滤、验证、转义与密码详解
2017/07/24 PHP
php实现将数据做成json的格式给前端使用
2018/08/21 PHP
CL vs ForZe BO5 第五场 2.13
2021/03/10 DOTA
JavaScript版代码高亮
2006/06/26 Javascript
JavaScript高级程序设计 读书笔记之九 本地对象Array
2012/02/27 Javascript
JQuery 操作/获取table具体代码
2013/06/13 Javascript
jQuery 处理页面的事件详解
2015/01/20 Javascript
深入探讨JavaScript String对象
2015/03/09 Javascript
javascript获取文档坐标和视口坐标
2015/05/26 Javascript
javascript 闭包详解
2015/07/02 Javascript
小议JavaScript中Generator和Iterator的使用
2015/07/29 Javascript
javascript中Date format(js日期格式化)方法小结
2015/12/17 Javascript
使用jquery.qrcode.min.js实现中文转化二维码
2016/03/11 Javascript
基于jQuery实现的查看全文功能【实用】
2016/12/11 Javascript
vue 中directive功能的简单实现
2018/01/05 Javascript
详解Vue单元测试case写法
2018/05/24 Javascript
Node.js笔记之process模块解读
2018/05/31 Javascript
MVVM 双向绑定的实现代码
2018/06/21 Javascript
原生JS实现自定义下拉单选选择框功能
2018/10/12 Javascript
详解vue-router数据加载与缓存使用总结
2018/10/29 Javascript
JavaScript工具库之Lodash详解
2019/06/15 Javascript
python的多重继承的理解
2017/08/06 Python
python如何重载模块实例解析
2018/01/25 Python
python中字典按键或键值排序的实现代码
2019/08/27 Python
django自定义模板标签过程解析
2019/12/14 Python
python实现邮件循环自动发件功能
2020/09/11 Python
通过css3动画和opacity透明度实现呼吸灯效果
2019/08/09 HTML / CSS
枚举和一组预处理的#define有什么不同
2016/09/21 面试题
大学毕业感言一句话
2014/02/06 职场文书
mysql 8.0.24 安装配置方法图文教程
2021/05/12 MySQL
【DOTA2】总决赛血虐~ XTREME GAMING vs MAGMA - OGA DOTA PIT 2022 CN
2022/04/02 DOTA