>백엔드 개발 >PHP 튜토리얼 >PHP는 클라우드 인쇄 클래스를 구현합니다.

PHP는 클라우드 인쇄 클래스를 구현합니다.

墨辰丷
墨辰丷원래의
2018-06-01 09:11:051829검색

이 기사에서는 주로 PHP 클라우드 인쇄 클래스를 소개하고 PHP가 네트워크 인쇄 데이터 수집, 대기열 정렬, 데이터 인쇄 및 기타 기능을 어떻게 실현할 수 있는지 완전한 예 형식으로 분석합니다. 필요한 친구는 참조할 수 있습니다. to it

프로젝트 요구 사항에 따라 인쇄 기능을 갖추려면 수백 대의 컴퓨터가 필요했습니다. 원래는 네트워크 프린터를 사용하고 싶었지만 나중에 네트워크 프린터가 없다는 것을 알고 직접 인쇄 클래스를 작성했습니다.

클래스 구현 아이디어는 먼저 인쇄할 모든 데이터를 수집한 다음 js를 사용하여 창 인쇄 기능을 호출하는 것입니다. 현재 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 Umeng 뉴스 푸시 카테고리

PHP 주택 대출 계산

PHP 필터링 방법으로 소수 찾기

위 내용은 PHP는 클라우드 인쇄 클래스를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.