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里得到前天和昨天的日期的代码
Aug 16 PHP
修改Zend引擎实现PHP源码加密的原理及实践
Apr 14 PHP
PHP 数组实例说明
Aug 18 PHP
PHP通用分页类page.php[仿google分页]
Aug 31 PHP
ubuntu 编译安装php 5.3.3+memcache的方法
Aug 05 PHP
PHP 第一节 php简介
Apr 28 PHP
PHP 字符串长度判断效率更高的方法
Mar 02 PHP
PHP常用函数和常见疑难问题解答
Mar 05 PHP
php读取目录所有文件信息dir示例
Mar 18 PHP
ThinkPHP自动转义存储富文本编辑器内容导致读取出错的解决方法
Aug 08 PHP
PHP 5.6.11中CURL模块问题的解决方法
Aug 08 PHP
php获取ip及网址的简单方法(必看)
Apr 01 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
文件系统基本操作类
2006/11/23 PHP
php生成高清缩略图实例详解
2015/12/07 PHP
php用户密码加密算法分析【Discuz加密算法】
2016/10/12 PHP
PHP按符号截取字符串的指定部分的实现方法
2018/09/10 PHP
脚本吧 - 幻宇工作室用到js,超强推荐base.js
2006/12/23 Javascript
javascript 用原型继承来实现对象系统
2010/03/22 Javascript
解析JavaScript中的不可见数据类型
2013/12/02 Javascript
js模拟C#中List的简单实例
2014/03/06 Javascript
JS动态修改表格cellPadding和cellSpacing的方法
2015/03/31 Javascript
JavaScript中ES6字符串扩展方法
2016/08/26 Javascript
基于JS快速实现导航下拉菜单动画效果附源码下载
2016/10/27 Javascript
JS中append字符串包含onclick无效传递参数失败的解决方案
2016/12/26 Javascript
jQuery+pjax简单示例汇总
2017/04/21 jQuery
Vue 使用 Mint UI 实现左滑删除效果CellSwipe
2018/04/27 Javascript
微信小程序实现保存图片到相册功能
2018/11/30 Javascript
使用p5.js临摹动态图片
2019/11/04 Javascript
python实现多线程采集的2个代码例子
2014/07/07 Python
在Linux下调试Python代码的各种方法
2015/04/17 Python
Apache如何部署django项目
2017/05/21 Python
python利用正则表达式排除集合中字符的功能示例
2017/10/10 Python
flask使用session保存登录状态及拦截未登录请求代码
2018/01/19 Python
Pandas 对Dataframe结构排序的实现方法
2018/04/10 Python
Python实现随机漫步功能
2018/07/09 Python
使用Flask集成bootstrap的方法
2018/07/24 Python
elasticsearch python 查询的两种方法
2019/08/04 Python
django-filter和普通查询的例子
2019/08/12 Python
Pytorch中膨胀卷积的用法详解
2020/01/07 Python
python numpy矩阵信息说明,shape,size,dtype
2020/05/22 Python
python PIL模块的基本使用
2020/09/29 Python
Python通过getattr函数获取对象的属性值
2020/10/16 Python
英国著名的化妆品折扣网站:Allbeauty.com
2016/07/21 全球购物
Raffaello Network德国:意大利拉斐尔时尚购物网
2019/05/01 全球购物
建筑系毕业生自我鉴定
2014/01/24 职场文书
推广普通话共筑中国梦演讲稿
2014/09/21 职场文书
python 调用js的四种方式
2021/04/11 Python
pycharm部署django项目到云服务器的详细流程
2021/06/29 Python