61 lines
1.1 KiB
PHP
Executable File
61 lines
1.1 KiB
PHP
Executable File
<?php
|
||
//include 'crc.php';
|
||
include 'net.php';
|
||
|
||
|
||
//打印十六进制(可以不用)
|
||
function println($bytes) {
|
||
for($i=0;$i<count($bytes);$i++)
|
||
{
|
||
printf("%02X ", $bytes[$i]);
|
||
}
|
||
printf(".");
|
||
}
|
||
|
||
|
||
//这里开始
|
||
$net = new net();
|
||
$net->listen('192.168.1.55', 50000);
|
||
|
||
while(true) {
|
||
$cs = $net->accept();
|
||
|
||
while($cs) {
|
||
|
||
try{
|
||
$ret = $net->recv_bytes($cs, 1024);
|
||
abc($ret);
|
||
//println($ret);
|
||
}
|
||
catch (Exception $e)
|
||
{
|
||
//printf('cs close');
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
$net->close();
|
||
|
||
|
||
//abc处理读取到的卡(4字节);
|
||
function abc($ret)
|
||
{
|
||
$len = $ret[4];
|
||
if($len < 14)
|
||
{
|
||
//printf('无效数据');
|
||
return ;
|
||
}
|
||
//
|
||
$count = $ret[9];
|
||
$count = ($count - 3) / 4;
|
||
//
|
||
for($i=0; $i<$count; $i++)
|
||
{
|
||
$idx = 10 + ($i * 4);
|
||
$card = sprintf("%02X%02X%02X%02X", $ret[$idx+0], $ret[$idx+1], $ret[$idx+2], $ret[$idx+3]);//这是获取到的卡数据(按文档意思可能会读到多张卡,处理这个$card就可以了)
|
||
printf('card['.$i.']>>'.$card.' | ');
|
||
}
|
||
}
|
||
|
||
?>
|