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 相关文章推荐
fleaphp crud操作之findByField函数的使用方法
Apr 23 PHP
解决文件名解压后乱码的问题 将文件名进行转码的代码
Jan 10 PHP
php地址引用(php地址引用的效率问题)
Mar 23 PHP
php新浪微博登录接口用法实例
Dec 23 PHP
提高php编程效率技巧
Aug 13 PHP
WordPress中限制非管理员用户在文章后只能评论一次
Dec 31 PHP
thinkPHP批量删除的实现方法分析
Nov 09 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
Feb 08 PHP
PHP设计模式之委托模式定义与用法简单示例
Aug 13 PHP
PHP如何通过date() 函数格式化显示时间
Nov 13 PHP
php框架知识点的整理和补充
Mar 01 PHP
一文搞懂PHP中的抽象类和接口
May 25 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
打造计数器DIY三步曲(上)
2006/10/09 PHP
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
2012/01/12 PHP
php实现异步数据调用的方法
2015/12/24 PHP
提交表单后 PHP获取提交内容的实现方法
2016/05/25 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
2017/09/02 PHP
javascript操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)
2013/12/16 Javascript
escape函数解决js中ajax传递中文出现乱码问题
2014/10/30 Javascript
jQuery动画出现连续触发、滞后反复执行的解决方法
2015/01/28 Javascript
jQuery选择器源码解读(四):tokenize方法的Expr.preFilter
2015/03/31 Javascript
JS+DIV+CSS排版布局实现美观的选项卡效果
2015/10/10 Javascript
jQuery弹簧插件编写基础之“又见弹窗”
2015/12/11 Javascript
node.js实现爬虫教程
2020/08/25 Javascript
微信js-sdk界面操作接口用法示例
2016/10/12 Javascript
浅析jsopn跨域请求原理及cors(跨域资源共享)的完美解决方法
2017/02/06 Javascript
Bootstrap图片轮播效果详解
2017/10/17 Javascript
VueJs 将接口用webpack代理到本地的方法
2017/11/27 Javascript
Vue表单之v-model绑定下拉列表功能
2019/05/14 Javascript
VueCli3.0中集成MockApi的方法示例
2019/07/05 Javascript
layui实现多图片上传并限制上传的图片数量
2019/09/26 Javascript
[34:44]Liquid vs TNC Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
python单链表实现代码实例
2013/11/21 Python
Python中的is和==比较两个对象的两种方法
2017/09/06 Python
python3.4实现邮件发送功能
2018/05/28 Python
python相对企业语言优势在哪
2020/06/12 Python
python使用列表的最佳方案
2020/08/12 Python
Wilson体育用品官网:美国著名运动器材品牌
2019/05/12 全球购物
解释一下ArrayList Vector和LinkedList的实现和区别
2013/04/26 面试题
软件生产职位结构化面试主要考察要素及面试题库
2015/06/12 面试题
中学教师岗位职责
2013/11/26 职场文书
医学实习生自我鉴定
2013/12/12 职场文书
企业承诺书怎么写
2014/05/24 职场文书
小学数学教研活动总结
2014/07/01 职场文书
群众路线教育实践活动思想汇报(2014特荐篇)
2014/09/16 职场文书
2016年高校自主招生自荐信范文
2015/03/24 职场文书
微信小程序和php的登录实现
2021/04/01 PHP
SQL Server内存机制浅探
2022/04/06 SQL Server