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代码
Jul 17 PHP
用PHP书写安全的脚本代码
Feb 05 PHP
CI框架源码阅读,系统常量文件constants.php的配置
Feb 28 PHP
php全角字符转换为半角函数
Feb 07 PHP
php遍历删除整个目录及文件的方法
Mar 13 PHP
使用XHGui来测试PHP性能的教程
Jul 03 PHP
使用symfony命令创建项目的方法
Mar 17 PHP
php中preg_replace_callback函数简单用法示例
Jul 21 PHP
php实现水印文字和缩略图的方法示例
Dec 29 PHP
PHP实现基于PDO扩展连接PostgreSQL对象关系数据库示例
Mar 31 PHP
PHP PDOStatement::bindParam讲解
Jan 30 PHP
php ActiveMQ的安装与使用方法图文教程
Feb 23 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安装扩展mcrypt以及相关依赖项(PHP安装PECL扩展的方法)
2013/07/05 PHP
详解PHP的Yii框架中扩展的安装与使用
2016/04/01 PHP
解决微信授权回调页面域名只能设置一个的问题
2016/12/11 PHP
游戏人文件夹程序 ver 4.03
2006/07/14 Javascript
完美解决JS中汉字显示乱码问题(已解决)
2006/12/27 Javascript
从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
2011/02/23 Javascript
关于html+ashx开发中几个问题的解决方法
2011/07/18 Javascript
jQuery EasyUI API 中文文档 可调整尺寸
2011/09/29 Javascript
JS 跳转页面延迟2种方法
2013/03/29 Javascript
javascript检查表单数据是否改变的方法
2013/07/30 Javascript
浅谈jquery回调函数callback的使用
2015/01/30 Javascript
JQuery CheckBox(复选框)操作方法汇总
2015/04/15 Javascript
javascript倒计时效果实现
2015/11/12 Javascript
js实现网页收藏功能
2015/12/17 Javascript
深入理解js promise chain
2016/05/05 Javascript
jQuery 插件封装的方法
2016/11/16 Javascript
使用JavaScript实现node.js中的path.join方法
2018/08/12 Javascript
微信小程序Getuserinfo解决方案图解
2018/08/24 Javascript
js中的this的指向问题详解
2019/08/29 Javascript
layui上传图片到服务器的非项目目录下的方法
2019/09/26 Javascript
Python实现pdf文档转txt的方法示例
2018/01/19 Python
python smtplib模块自动收发邮件功能(一)
2018/05/22 Python
Python中的取模运算方法
2018/11/10 Python
细数nn.BCELoss与nn.CrossEntropyLoss的区别
2020/02/29 Python
基于TensorFlow的CNN实现Mnist手写数字识别
2020/06/17 Python
浅析python字符串前加r、f、u、l 的区别
2021/01/24 Python
浅析HTML5的WebSocket与服务器推送事件
2016/02/19 HTML / CSS
皮姆斯勒语言学习:Pimsleur Language Programs
2018/06/30 全球购物
Beach Bunny Swimwear官网:设计师泳装和性感比基尼
2019/03/13 全球购物
正宗的日本零食和糖果订阅盒:Bokksu
2019/11/21 全球购物
大学生个人简历自我评价
2013/11/16 职场文书
日语专业个人的求职信
2013/12/03 职场文书
我的未来不是梦演讲稿
2014/09/02 职场文书
交通事故赔偿协议书
2014/10/16 职场文书
爱国主义主题班会
2015/08/14 职场文书
Python进程间的通信之语法学习
2022/04/11 Python