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 相关文章推荐
实现 win2003 下 mysql 数据库每天自动备份
Dec 06 PHP
收集的PHP中与数组相关的函数
Mar 22 PHP
php下一个阿拉伯数字转中文数字的函数
Jul 16 PHP
全世界最小的php网页木马一枚 附PHP木马的防范方法
Oct 09 PHP
PHP得到mssql的存储过程的输出参数功能实现
Nov 23 PHP
使用PHP破解防盗链图片的一个简单方法
Jun 07 PHP
php使用GeoIP库实例
Jun 27 PHP
php实现图片局部打马赛克的方法
Feb 11 PHP
全新Mac配置PHP开发环境教程
Feb 03 PHP
php数据库操作model类(使用__call方法)
Nov 16 PHP
laravel-admin的多级联动方法
Sep 30 PHP
php实现文件上传基本验证
Mar 04 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
使用TinyButStrong模板引擎来做WEB开发
2007/03/16 PHP
加强版phplib的DB类
2008/03/31 PHP
php实现自动获取生成文章主题关键词功能的深入分析
2013/06/03 PHP
CodeIgniter框架验证码类库文件与用法示例
2017/03/18 PHP
jquery 的 $(&quot;#id&quot;).html() 无内容的解决方法
2010/06/07 Javascript
node.js 开发指南 ? Node.js 连接 MySQL 并进行数据库操作
2014/07/29 Javascript
javascript事件模型实例分析
2015/01/30 Javascript
Jquery注册事件实现方法
2015/05/18 Javascript
JS实现的车标图片提示效果代码
2015/10/10 Javascript
js实现内容显示并使用json传输数据
2016/03/16 Javascript
Bootstrap弹出框modal上层的输入框不能获得焦点问题的解决方法
2016/12/13 Javascript
基于vue组件实现猜数字游戏
2020/05/28 Javascript
vue实现仿淘宝结账页面实例代码
2017/11/08 Javascript
Three.js加载外部模型的教程详解
2017/11/10 Javascript
JS写XSS cookie stealer来窃取密码的步骤详解
2017/11/20 Javascript
javascript将非数值转换为数值
2018/09/13 Javascript
Node.js中的不安全跳转如何防御详解
2018/10/21 Javascript
JavaScript学习笔记之DOM基础操作实例小结
2019/01/09 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
2020/01/17 Javascript
微信小程序实现多选框功能的实例代码
2020/06/24 Javascript
JavaScript代码模拟鼠标自动点击事件示例
2020/08/07 Javascript
Linux RedHat下安装Python2.7开发环境
2017/05/20 Python
对python使用http、https代理的实例讲解
2018/05/07 Python
Python3.4 splinter(模拟填写表单)使用方法
2018/10/13 Python
在pycharm 中添加运行参数的操作方法
2019/01/19 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
2019/02/15 Python
python字典改变value值方法总结
2019/06/21 Python
Pycharm保存不能自动同步到远程服务器的解决方法
2019/06/27 Python
Django表单提交后实现获取相同name的不同value值
2020/05/14 Python
Python如何使用27行代码绘制星星图
2020/07/20 Python
香港零食网购:上仓胃子
2020/06/08 全球购物
C#如何判断当前用户是否输入某个域
2015/12/07 面试题
高中生评语大全
2014/04/25 职场文书
现役军人家属慰问信
2015/03/24 职场文书
2019年大学生暑期社会实践调查报告模板
2019/11/07 职场文书
Python实现查询剪贴板自动匹配信息的思路详解
2021/07/09 Python