PHP连接中控考勤机

PHP 2016-12-18

测试环境:Thinkphp 3.2

1、安装中考sdk,根据系统选择安装32位或64位。(下载地址:http://cn.zkteco.com/download_list/downloadcategoryid=8&isMode=false.html

2、修改php.ini设置

com.allow_dcom =true

extension=php_com_dotnet.dll

allow_call_time_pass_reference=on

3、代码

public function view($ip,$port)
    {
        header("Content-Type:text/html;charset=UTF-8");
        $zk = new COM("zkemkeeper.ZKEM.1") or die("Unable to instanciate ZK"); 
        if ($zk->Connect_Net($ip,$port)==false)
        {
            echo "设备连接失败!";
        }
        else
        {
            $year=0;
            $month=0;
            $day=0;
            $hour=0;
            $minter=0;
            $second=0;
            $zk->GetDeviceTime(1,&$year,&$month,&$day,&$hour,&$minter,&$second);
            echo "设备时间:{$year}-{$month}-{$day} {$hour}:{$minter}:{$second}
";
            $SerialNumber="";
            $zk->GetSerialNumber(1,&$SerialNumber);
            echo "设备序列号:{$SerialNumber}n";
            $zk->Disconnect();
        }
    }

4、运行效果

设备时间:2016-11-9 22:5:54
设备序列号:3142143700318

注意:在PHP5.4以后版本这一句allow_call_time_pass_reference=on不用去改。

public function view($ip,$port)

{

header("Content-Type:text/html;charset=UTF-8");

$zk = new \COM("zkemkeeper.ZKEM.1") or die("Unable to instanciate ZK");

if ($zk->Connect_Net($ip,$port)==false)

{

echo "设备连接失败!";

}

else

{

$year=0;

$month=0;

$day=0;

$hour=0;

$minter=0;

$second=0;

$zk->GetDeviceTime(1,$year,$month,$day,$hour,$minter,$second);

echo "设备时间:{$year}-{$month}-{$day} {$hour}:{$minter}:{$second}<br />";

$SerialNumber="";

$zk->GetSerialNumber(1,$SerialNumber);

echo "设备序列号:{$SerialNumber}n";

$zk->Disconnect();

}

}
知识共享署名声明
本文由 herokay 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

3 条评论

  1. John

    博主,想请问一下php怎么引用VARIANT_BOOL 类型?

    1. herokay

      有具体代码没?php是弱类型语言,VARIANT_BOOL可以直接赋值给变量。技术问题可以私聊,网站留言一般没发实施回复。

  2. Blithe

    请问下有更详细的步骤吗,一直报错

添加新评论