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 相关文章推荐
定制404错误页面,并发信给管理员的程序
Oct 09 PHP
php xml留言板 xml存储数据的简单例子
Aug 24 PHP
PHP array_push 数组函数
Dec 26 PHP
ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
Jul 22 PHP
如何让搜索引擎抓取AJAX内容解决方案
Aug 25 PHP
PHP采集静态页面并把页面css,img,js保存的方法
Dec 23 PHP
yii,CI,yaf框架+smarty模板使用方法
Dec 29 PHP
PHP结合Mysql数据库实现留言板功能
Mar 04 PHP
php使用curl通过代理获取数据的实现方法
May 16 PHP
thinkPHP商城公告功能开发问题分析
Dec 01 PHP
PHP工厂模式简单实现方法示例
May 23 PHP
PHP实现倒计时功能
Nov 16 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数据库类
2009/05/27 PHP
mcrypt启用 加密以及解密过程详细解析
2013/08/07 PHP
php用header函数实现301跳转代码实例
2013/11/25 PHP
PHP中new static()与new self()的区别异同分析
2014/08/22 PHP
PHP+MySQL实现的简单投票系统实例
2016/02/24 PHP
WordPress中的shortcode短代码功能使用详解
2016/05/17 PHP
PHP小白必须要知道的php基础知识(超实用)
2017/10/10 PHP
经常用的图片在容器中的水平垂直居中实例
2007/06/10 Javascript
jQuery的12招常用技巧分享
2011/08/08 Javascript
ParseInt函数参数设置介绍
2014/01/02 Javascript
Jquery $.getJSON 在IE下的缓存问题解决方法
2014/10/10 Javascript
JavaScript小技巧整理篇(非常全)
2016/01/26 Javascript
深入浅析search 搜索框的写法
2016/08/02 Javascript
JS正则子匹配实例分析
2016/12/22 Javascript
详解Angular的双向数据绑定(MV-VM)
2016/12/26 Javascript
javascript回调函数的概念理解与用法分析
2017/05/27 Javascript
JavaScript实现AOP详解(面向切面编程,装饰者模式)
2017/12/19 Javascript
使用vue-cli webpack 快速搭建项目的代码
2018/11/21 Javascript
python将人民币转换大写的脚本代码
2013/02/10 Python
Python重新引入被覆盖的自带function
2014/07/16 Python
Python 时间戳之获取整点凌晨时间戳的操作方法
2020/01/28 Python
python对文件的操作方法汇总
2020/02/28 Python
Django 解决阿里云部署同步数据库报错的问题
2020/05/14 Python
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
2020/06/18 Python
python中rb含义理解
2020/06/18 Python
多视角3D逼真HTML5水波动画
2016/03/03 HTML / CSS
应用化学专业职业生涯规划书
2014/01/22 职场文书
银行爱岗敬业演讲稿
2014/05/05 职场文书
李敖北大演讲稿
2014/05/24 职场文书
2015年毕业实习工作总结
2014/12/12 职场文书
2015年采购员工作总结
2015/04/27 职场文书
给朋友的赠语
2015/06/23 职场文书
Python机器学习之PCA降维算法详解
2021/05/19 Python
vue 实现上传组件
2021/05/31 Vue.js
Java中使用Filter过滤器的方法
2021/06/28 Java/Android
vue选项卡切换的实现案例
2022/04/11 Vue.js