PHP云打印类完整示例
本文实例讲述了PHP云打印类。分享给大家供大家参考,具体如下:
一个项目需求要几百台电脑都有打印功能,本来是想用网络打印机的,后来发现没有网络打印机,就自己动手写一个打印类算了。
类实现想法是:先把要打印的数据都收集起来,在用js调用window打印函数。目前就使用于IE。
类提供打印排队功能。(PS,说白了就是一条一条读取数据)
classWprint{ //收集打印代码 private$data=array(); //处理打印代码 private$handle; publicfunction__construct() { header("Content-type:text/html;charsetutf-8"); $this->link();//链接数据库 $this->collect($_POST["username"],$_POST["content"],$_POST["ip"]); $this->handle(); } //链接数据库 privatefunctionlink() { $link=mysql_connect('localhost','root','123456'); mysql_select_db('shen',$link); mysql_query('SETNAMESutf8'); } //收集打印代码 privatefunctioncollect($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);//数据节点入栈 } //处理打印代码入库 privatefunctionhandle() { foreach($this->dataas$value) { $sql="insertintoprint(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秒后再一次提交"; } } } //检查传人数据是否为空 privatefunctioncheck($string) { if(strlen($string)==0||$string=="") { echo"数据收集失败,打印内容为空"; exit; }else { return$string; } } //获取打印排队人数 privatefunctionnum($id) { $sql="selectidfromprintwherestate=0andid<".$id."orderbyidasc"; $query=mysql_query($sql); $num=mysql_num_rows($query); echo",您前面还有".$num."个人在排队"; } //打印数据 publicfunctionYprint() { $sql="selectid,contentfromprintwherestate=0orderbyidasclimit1"; $query=mysql_query($sql); $row=mysql_fetch_array($query); if(!empty($row["content"])) { echo"<scripttyle=\"text/javascript\"> window.print(); </script>"; $id=$row["id"]; $sql="updateprintsetstate=1whereid=".$id; mysql_query($sql); echo"打印处理完成"; }else { echo$row["content"]; } } }
思想很简单,收集数据再一个一个处理。这样就不仅解决了网络打印的问题,还避免了网络打印打印过程排队的问题。
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数据结构与算法教程》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php操作office文档技巧总结(包括word,excel,access,ppt)》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。