Home > Article > Backend Development > How to implement cloud printing with PHP
How does PHP implement cloud printing? This article mainly introduces the PHP cloud printing class, and analyzes the functions of PHP to implement network printing data collection, queue sorting, data printing and other functions in the form of a complete example. It has certain reference value and friends in need can refer to it. I hope to be helpful.
The details are as follows:
A project requires hundreds of computers to have printing functions. I originally wanted to use a network printer, but later I found that there was no network printer, so I wrote a printing program myself. .
The idea of class implementation is: first collect all the data to be printed, and then use js to call the window printing function. Currently used in IE.
class provides print queuing function. (PS, to put it bluntly, it means reading the data one by one)
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"]; } } }
The idea is very simple, collect the data and process it one by one. This not only solves the problem of network printing, but also avoids the problem of queuing in the network printing process.
Related recommendations:
javaScript connects to printer and prints receipt example sharing
php queue class message queue thinkphp queue php queue processing high level
How does PHP get the real IP of the user client
The above is the detailed content of How to implement cloud printing with PHP. For more information, please follow other related articles on the PHP Chinese website!