PHP实现轻量级WEB服务器接收HTTP提交的RFID刷卡信息并回应驱动读卡器显示播报语音

PHP实现轻量级WEB服务器接收HTTP提交的RFID刷卡信息并回应驱动读卡器显示播报语音_第1张图片

 本示例使用的读卡器:RFID网络WIFI无线TCP/UDP/HTTP可编程二次开发读卡器POE供电语音-淘宝网 (taobao.com)

 0) {          //可以直接使用JSON来解板,此处统一替换成字符串处理
                $request = str_replace("{", "", $request);
                $request = str_replace("}", "", $request);
                $request = str_replace("\"", "", $request);
                $request = str_replace(":", "=", $request);
                $request = str_replace(",", "&", $request);
            }
        }
        $Fields = explode("&", $request);
        $conuts = count($Fields);
        for ($p = 0; $p < $conuts; $p++) {
            $para = explode("=", $Fields[$p]);
            switch ($para[0]) {
                case "info":
                    $info = $para[1];
                    break;
                case "jihao":
                    $jihao = $para[1];
                    break;
                case "cardtype":
                    $cardtype = $para[1];
                    $typenum = hexdec($cardtype) % 16;                  //typenum=1 ID卡,2 HID卡,3 T5557卡,4 EM4305卡,5 IC卡,6 二代身份证,7 是15693卡,IClass"
                    $pushortake = intval(hexdec($cardtype) / 128);  //pushortake=0 表示读卡,>0表示卡离开感应区
                    break;
                case "card":
                    $card = $para[1];
                    break;
                case "data":
                    $data = $para[1];
                    break;
                case "dn":
                    $dn = $para[1];
                    break;
                case "status":
                    $status = $para[1];
                    break;
            }
        }
        if(strlen($info)>0 and strlen($info)>0) {
            if ($pushortake == 0)   //播报的中文语音,[v8]表示语音大小,取值v1 到 v16, TTS中文语音要转换编码
                $ChineseVoice = "[v8]" . GetChineseCode("读取卡号[n1]") . $card;
            else
                $ChineseVoice = "[v8]" . GetChineseCode("卡号[n1]") . $card . GetChineseCode("离开感应区");

            //此处可加入业务对数据库的查询、删除、增加、修改等操作,结果以文字、语音信息回应

            $DisplayStr = "{" . GetChineseCode("卡号") . ":}";  //显示的文字,{}内文字可以高亮显示,中文必须转换编码,英文字符、数字等不需要转换
            $DisplayStr = $DisplayStr . substr($card . "        ", 0, 12);
            $DisplayStr = $DisplayStr . substr(date('Y-m-d H:i:s', time()), 2, 17);

            //Response=1是固定的回应头信息+接收的包序号+显示文字+显示延时秒数+蜂鸣响声代码+TTS语音
            $ResponseStr = "Response=1," . $info . "," . $DisplayStr . ",20,1," . $ChineseVoice;
        }
        return $ResponseStr;
    }
    catch (Exception $e1) {
        echo "Request ERR:".$e1."\n";
    }
}

//获取中文汉字GB2312编码,显示中文、TTS中文语音必须转换编码
function GetChineseCode($inputstr){
    if(mb_detect_encoding($inputstr, 'UTF-8', true) === true)
        $gbkstr=iconv("UTF-8","GB2312",$inputstr);      //中文必段强制使用GB2312编码格式
    else
        $gbkstr=$inputstr;
    $strlens=strlen($gbkstr);
    $hexcode="";
    for($i=0;$i<$strlens;$i++){
        if($i % 2 ==0) {
            $hexcode = $hexcode . "\\x";
        }
        $byte = ord($gbkstr[$i]);
        $b=substr('00'.dechex($byte ),-2);
        $hexcode=$hexcode.$b;
    }
    return $hexcode;
}

你可能感兴趣的:(网络读卡器,18002295132,QQ:954486673,PHP,HTTP,PHP,WEB,PHP,Server,PHP,Request,PHP,Response)