PHP实现轻量级WEB服务器接收HTTP提交的RFID刷卡信息并回应驱动读卡器显示播报语音
短信预约 -IT技能 免费直播动态提醒
本示例使用的读卡器: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;}
来源地址:https://blog.csdn.net/zhangjin7422/article/details/132320048
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341