Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert die Cloud-Printing-Klasse

PHP implementiert die Cloud-Printing-Klasse

墨辰丷
墨辰丷Original
2018-06-01 09:11:051806Durchsuche

Dieser Artikel stellt hauptsächlich die PHP-Cloud-Druckklasse vor und analysiert die Sammlung, Warteschlangensortierung und den Datendruck von Netzwerkdruckdaten in PHP. Es hat einen gewissen Referenzwert >

Ein Projekt erfordert Hunderte von Computern, um über Druckfunktionen zu verfügen. Ursprünglich wollte ich einen Netzwerkdrucker verwenden, aber später stellte ich fest, dass es keinen Netzwerkdrucker gab, also habe ich selbst einen Druckkurs geschrieben. Die Idee bei der Implementierung der Klasse


besteht darin, zunächst alle zu druckenden Daten zu sammeln und dann mit js die Fensterdruckfunktion aufzurufen. Wird derzeit im IE verwendet. Die

-Klasse stellt Druckwarteschlangenfunktionen bereit. (PS, um es ganz klar auszudrücken, es bedeutet, die Daten einzeln zu lesen)

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"];
     }
   }
}

Die Idee ist sehr einfach: Sammeln Sie die Daten und verarbeiten Sie sie einzeln eins. Dies löst nicht nur das Problem des Netzwerkdrucks, sondern vermeidet auch das Problem der Warteschlange beim Netzwerkdruckprozess.

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.

Verwandte Empfehlungen:

PHP Umeng Message Push Category

PHP Home Loan Calculation

PHP-Filtermethode zum Finden von Primzahlen

Das obige ist der detaillierte Inhalt vonPHP implementiert die Cloud-Printing-Klasse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn