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 max_execution_time执行时间问题
Jul 17 PHP
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
Dec 05 PHP
php中的filesystem文件系统函数介绍及使用示例
Feb 13 PHP
php操作XML、读取数据和写入数据的实现代码
Aug 15 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
Jan 13 PHP
如何解决phpmyadmin导入数据库文件最大限制2048KB
Oct 09 PHP
PHP安装GeoIP扩展根据IP获取地理位置及计算距离的方法
Jul 01 PHP
PHP简单判断iPhone、iPad、Android及PC设备的方法
Oct 11 PHP
PHP进程通信基础之信号量与共享内存通信
Feb 19 PHP
PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】
May 13 PHP
Referer原理与图片防盗链实现方法详解
Jul 03 PHP
Laravel + Elasticsearch 实现中文搜索的方法
Feb 02 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实现的短网址算法分享
2014/06/20 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
2015/02/10 PHP
php将HTML表格每行每列转为数组实现采集表格数据的方法
2015/04/03 PHP
PHP简单留言本功能实现代码
2017/06/09 PHP
php获取用户真实IP和防刷机制的实例代码
2018/11/28 PHP
再次更新!MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类 Ver 1.6)
2007/02/05 Javascript
jquery $.ajax各个事件执行顺序
2010/10/15 Javascript
EasyUI 中 MenuButton 的使用方法
2012/07/14 Javascript
JQuery筛选器全系列介绍
2013/08/27 Javascript
JS中如何设置readOnly的值
2013/12/25 Javascript
利用JQuery和Servlet实现跨域提交请求示例分享
2014/02/12 Javascript
多个$(document).ready()的执行顺序实例分析
2014/07/26 Javascript
jquery插件hiAlert实现网页对话框美化
2015/05/03 Javascript
使用pcs api往免费的百度网盘上传下载文件的方法
2016/03/17 Javascript
jQuery简单注册和禁用全局事件的方法
2016/07/25 Javascript
JS读写CSS样式的方法汇总
2016/08/16 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
2017/01/29 Javascript
js实现不提示直接关闭网页窗口
2017/03/30 Javascript
jQuery实现简单的回到顶部totop功能示例
2017/10/16 jQuery
Vue中使用vux配置代码详解
2018/09/16 Javascript
vue使用video.js进行视频播放功能
2019/07/18 Javascript
vue 实现单选框设置默认选中值
2019/11/07 Javascript
JavaScript数组排序功能简单实现
2020/05/14 Javascript
对Django 中request.get和request.post的区别详解
2019/08/12 Python
Python 多线程C段扫描、检测 Ping扫描脚本的实现
2020/09/03 Python
html5 canvas fillRect坐标和大小的问题解决方法
2014/03/26 HTML / CSS
巴西图书和电子产品购物网站:Saraiva
2017/06/07 全球购物
Clarks其乐鞋荷兰官网:Clarks荷兰
2019/07/05 全球购物
应届生如何写自荐信
2014/01/05 职场文书
公司年终奖分配方案
2014/06/16 职场文书
个人作风建设自查报告
2014/10/22 职场文书
退休欢送会致辞
2015/07/31 职场文书
2016大学生诚信考试承诺书
2016/03/25 职场文书
postgresql无序uuid性能测试及对数据库的影响
2021/06/11 PostgreSQL
vue3中provide && inject的使用
2021/07/01 Vue.js
Nginx配置根据url参数重定向
2022/04/11 Servers