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执行sql语句的写法
Mar 10 PHP
php 将bmp图片转为jpg等其他任意格式的图片
Jun 29 PHP
ThinkPHP中I(),U(),$this-&gt;post()等函数用法
Nov 22 PHP
Nginx下配置codeigniter框架方法
Apr 07 PHP
php使用for语句输出三角形的方法
Jun 09 PHP
PHP易混淆知识整理笔记
Sep 24 PHP
php如何控制用户对图片的访问 PHP禁止图片盗链
Mar 25 PHP
如何修改yii2.0自带的user表为其它的表
Aug 01 PHP
php封装的mongodb操作类代码
Aug 06 PHP
phpStudy配置多站点多域名方法及遇到的403错误解决方法
Oct 19 PHP
PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
Dec 25 PHP
php使用scandir()函数扫描指定目录下所有文件示例
Jun 08 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程序61条面向对象分析设计的经验小结
2008/11/12 PHP
PHP $_SERVER详解
2009/01/16 PHP
PHP 模拟登陆MSN并获得用户信息
2009/05/16 PHP
用php实现的获取网页中的图片并保存到本地的代码
2010/01/05 PHP
php数组一对一替换实现代码
2012/08/31 PHP
php实现的通用图片处理类
2015/03/24 PHP
php通过前序遍历树实现无需递归的无限极分类
2015/07/10 PHP
激活 ActiveX 控件
2006/10/09 Javascript
10款新鲜出炉的 jQuery 插件(Ajax 插件,有幻灯片、图片画廊、菜单等)
2011/06/08 Javascript
brook javascript框架介绍
2011/10/10 Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
2020/04/20 Javascript
你不知道的 javascript【推荐】
2017/01/08 Javascript
微信小程序 devtool隐藏的秘密
2017/01/21 Javascript
jq给页面添加覆盖层遮罩的实例
2017/02/16 Javascript
使用 Vue.js 仿百度搜索框的实例代码
2017/05/09 Javascript
JS监听滚动和id自动定位滚动
2018/12/18 Javascript
vue.js 2.*项目环境搭建、运行、打包发布的详细步骤
2019/05/01 Javascript
JS中使用react-tooltip插件实现鼠标悬浮显示框
2019/05/15 Javascript
Vue.js组件实现选项卡以及切换特效
2019/07/24 Javascript
Layui点击图片弹框预览的实现方法
2019/09/16 Javascript
Vue的Options用法说明
2020/08/14 Javascript
[05:45]Ti4观战指南(下)
2014/07/07 DOTA
[36:33]完美世界DOTA2联赛循环赛 Matador vs Forest 第一场 11.06
2020/11/06 DOTA
使用Python机器学习降低静态日志噪声
2018/09/29 Python
在Python中用GDAL实现矢量对栅格的切割实例
2020/03/11 Python
Python内建序列通用操作6种实现方法
2020/03/26 Python
python pandas dataframe 去重函数的具体使用
2020/07/20 Python
Python结合百度语音识别实现实时翻译软件的实现
2021/01/18 Python
CSS3 box-shadow属性实例详解
2020/06/19 HTML / CSS
应用艺术毕业生的自我评价
2013/12/04 职场文书
给交警的表扬信
2014/01/12 职场文书
忠诚与背叛观后感
2015/06/04 职场文书
教师听课学习心得体会
2016/01/15 职场文书
python 算法题——快乐数的多种解法
2021/05/27 Python
Nginx进程调度问题详解
2021/09/25 Servers
vue中的可拖拽宽度div的实现示例
2022/04/08 Vue.js