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 相关文章推荐
discuz 首页四格:最新话题+最新回复+热门话题+精华文章插件
Aug 19 PHP
使用PHP的日期与时间函数技巧
Apr 24 PHP
php中{}大括号是什么意思
Dec 01 PHP
PHP数据库万能引擎类adodb配置使用以及实例集锦
Jun 12 PHP
PHP扩展开发入门教程
Feb 26 PHP
php清除和销毁session的方法分析
Mar 19 PHP
php使用APC实现实时上传进度条功能
Oct 26 PHP
PHP使用Pthread实现的多线程操作实例
Nov 14 PHP
PHP引用的调用方法分析
Apr 25 PHP
thinkPHP框架实现图像裁剪、缩放、加水印的方法
Mar 14 PHP
CentOS系统中PHP安装扩展的方式汇总
Apr 09 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
Oct 12 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
一个用于MySQL的PHP XML类
2006/10/09 PHP
学习php设计模式 php实现观察者模式(Observer)
2015/12/09 PHP
简单了解将WordPress中的工具栏移到底部的小技巧
2015/12/31 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
2016/05/16 PHP
PHP的Trait机制原理与用法分析
2019/10/18 PHP
帮助避免错误的Javascript陷阱清单
2009/05/31 Javascript
基于Jquery的仿Windows Aero弹出窗(漂亮的关闭按钮)
2010/09/28 Javascript
js中Math之random,round,ceil,floor的用法总结
2013/12/26 Javascript
100个不能错过的实用JS自定义函数
2014/03/05 Javascript
js处理表格对table进行修饰
2014/05/26 Javascript
jquery中使用循环下拉菜单示例代码
2014/09/24 Javascript
JS实现的页面自定义滚动条效果
2015/10/26 Javascript
js跨域资源共享 基础篇
2016/07/02 Javascript
NodeJS中的MongoDB快速入门详细教程
2016/11/11 NodeJs
Bootstrap源码解读标签、徽章、缩略图和警示框(8)
2016/12/26 Javascript
jquery 实时监听输入框值变化的完美方法(必看)
2017/01/26 Javascript
使用vue-resource进行数据交互的实例
2017/09/02 Javascript
Promise.all中对于reject的处理方法
2018/08/01 Javascript
使用mpvue搭建一个初始小程序及项目配置方法
2018/12/03 Javascript
优化Vue项目编译文件大小的方法步骤
2019/05/27 Javascript
微信小程序在线客服自动回复功能(基于node)
2019/07/03 Javascript
JavaScript使用百度ECharts插件绘制饼图操作示例
2019/11/26 Javascript
go和python调用其它程序并得到程序输出
2014/02/10 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
2018/12/12 Python
Python随机函数库random的使用方法详解
2019/08/21 Python
通过代码简单了解django model序列化作用
2020/11/12 Python
澳大利亚快时尚鞋类市场:Billini
2018/05/20 全球购物
考核工作实施方案
2014/03/30 职场文书
《恐龙》教学反思
2014/04/27 职场文书
经济管理专业求职信
2014/06/09 职场文书
运动会跳远广播稿5篇
2014/09/17 职场文书
承诺函格式模板
2015/01/21 职场文书
党校学习个人总结
2015/02/15 职场文书
python字符串常规操作大全
2021/05/02 Python
sql server 累计求和实现代码
2022/02/28 SQL Server
bose降噪耳机音能消除人声吗
2022/04/19 数码科技