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 array_walk() 数组函数
Jul 12 PHP
用PHP实现的四则运算表达式计算实现代码
Aug 02 PHP
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
Mar 06 PHP
PHP中模拟链表和链表的基本操作示例
Feb 27 PHP
php ajax异步读取rss文档数据
Mar 29 PHP
php实现的读取CSV文件函数示例
Feb 07 PHP
PHP合并数组函数array_merge用法分析
Feb 17 PHP
利用php-cli和任务计划实现刷新token功能的方法
May 03 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
Nov 13 PHP
php curl批处理实现可控并发异步操作示例
May 09 PHP
PHP实现二维数组中的查找算法小结
Jun 09 PHP
php下的原生ajax请求用法实例分析
Feb 28 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将数据库导出成excel的方法
2010/05/07 PHP
php生成图片验证码的实例讲解
2015/08/03 PHP
PHP编写RESTful接口
2016/02/23 PHP
Zend Framework分页类用法详解
2016/03/22 PHP
PHP类的自动加载与命名空间用法实例分析
2020/06/05 PHP
JS限制Textarea文本域字符个数的具体实现
2013/08/02 Javascript
javascript中的undefined和not defined区别示例介绍
2014/02/26 Javascript
JavaScript中的apply和call函数详解
2014/07/20 Javascript
node.js中的querystring.stringify方法使用说明
2014/12/10 Javascript
介绍JavaScript的一个微型模版
2015/06/24 Javascript
Jquery ajax基础教程
2015/11/20 Javascript
JS递归遍历对象获得Value值方法技巧
2016/06/14 Javascript
vue实现简单实时汇率计算功能
2017/01/15 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
2017/01/27 Javascript
Angular.js ng-file-upload结合springMVC的使用教程
2017/07/10 Javascript
JavaScript 九种跨域方式实现原理
2019/02/11 Javascript
ES6入门教程之变量的解构赋值详解
2019/04/13 Javascript
微信小程序实现图片翻转效果的实例代码
2019/09/20 Javascript
jQuery鼠标滑过横向时间轴样式(代码详解)
2019/11/01 jQuery
JS监听组合按键思路及实现过程
2020/04/17 Javascript
Vue单文件组件开发实现过程详解
2020/07/30 Javascript
Python3简单实例计算同花的概率代码
2017/12/06 Python
Python通过调用mysql存储过程实现更新数据功能示例
2018/04/03 Python
详解opencv Python特征检测及K-最近邻匹配
2019/01/21 Python
解决Pytorch训练过程中loss不下降的问题
2020/01/02 Python
TensorFlow基本的常量、变量和运算操作详解
2020/02/03 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
2020/04/25 Python
python 如何快速复制序列
2020/09/07 Python
Trunki英国官网:儿童坐骑式行李箱
2017/05/30 全球购物
.NET面试10题
2014/02/24 面试题
售后服务承诺书
2014/03/26 职场文书
离婚协议书范本
2015/01/26 职场文书
德能勤绩廉个人总结
2015/02/14 职场文书
小学教师教学随笔
2015/08/14 职场文书
大学生暑期实践报告之企业经营管理
2019/08/08 职场文书
Java Spring读取和存储详细操作
2022/08/05 Java/Android