首頁 >後端開發 >php教程 >PHP如何實現雲端列印

PHP如何實現雲端列印

*文
*文原創
2018-01-02 14:46:424333瀏覽

PHP如何實現雲端列印?本文主要介紹了PHP雲端列印類,結合完整實例形式分析了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"];
     }
   }
}

思想很簡單,收集資料再一個一個處理。 這樣就不僅解決了網路列印的問題,也避免了網路列印列印過程排隊的問題。

相關推薦:

javaScript 連線印表機,列印小票實例分享

php 佇列類別訊息佇列thinkphp 佇列php佇列處理高並且

#PHP如何取得使用者客戶端真實IP

########PHP如何取得使用者客戶端真實IP######### #

以上是PHP如何實現雲端列印的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

相關文章

看更多