Saat membantu teman saya mengambil data absen dari mesin absen X100C, saya mencari ke berbagai sumber. Berikut cara menarik data mesin absen X100C dengan PHP.
Tarik Data
Misal IP address yang di set pada mesin absen adalah 192.168.1.220 dan keynya adalah 0. Lalu buatlah script php dengan isi berikut.
$IP = "192.168.1.220"; $Key = "0"; $Connect = fsockopen($IP, "80", $errno, $errstr, 1); if ($Connect) { $soap_request = "<GetAttLog> <ArgComKey xsi:type=\"xsd:integer\">".$Key."</ArgComKey> <Arg><PIN xsi:type=\"xsd:integer\">All</PIN></Arg> </GetAttLog>"; $newLine = "\r\n"; fputs($Connect, "POST /iWsService HTTP/1.0".$newLine); fputs($Connect, "Content-Type: text/xml".$newLine); fputs($Connect, "Content-Length: ".strlen($soap_request).$newLine.$newLine); fputs($Connect, $soap_request.$newLine); $buffer = ""; while($Response = fgets($Connect, 1024)) { $buffer = $buffer.$Response; } } else echo "Koneksi Gagal"; $buffer = Parse_Data($buffer,"<GetAttLogResponse>","</GetAttLogResponse>"); $buffer = explode("\r\n",$buffer); for ($a=0; $a<count($buffer); $a++) { $data=Parse_Data($buffer[$a],"<Row>","</Row>"); $export[$a]['pin'] = Parse_Data($data,"<PIN>","</PIN>"); $export[$a]['waktu'] = Parse_Data($data,"<DateTime>","</DateTime>"); $export[$a]['status'] = Parse_Data($data,"<Status>","</Status>"); } echo '<pre>'; print_r($export);
Setelah itu sisipkan function Parse_Data() dengan script berikut.
function Parse_Data ($data,$p1,$p2) { $data = " ".$data; $hasil = ""; $awal = strpos($data,$p1); if ($awal != "") { $akhir = strpos(strstr($data,$p1),$p2); if ($akhir != ""){ $hasil=substr($data,$awal+strlen($p1),$akhir-strlen($p1)); } } return $hasil; }
Maka hasil dari data tersebut akan didapatkan dengan variable $export.
Hapus Data
Untuk melakukan hapus data log presensinya, Anda bisa menghapus dengan cara berikut:
$Connect = fsockopen($IP, "80", $errno, $errstr, 1); if ($Connect) { $soap_request = "<ClearData> <ArgComKey xsi:type=\"xsd:integer\">".$Key."</ArgComKey> <Arg><Value xsi:type=\"xsd:integer\">3</Value></Arg> </ClearData>"; $newLine = "\r\n"; fputs($Connect, "POST /iWsService HTTP/1.0".$newLine); fputs($Connect, "Content-Type: text/xml".$newLine); fputs($Connect, "Content-Length: ".strlen($soap_request).$newLine.$newLine); fputs($Connect, $soap_request.$newLine); $buffer = ""; while($Response = fgets($Connect, 1024)) { $buffer = $buffer.$Response; } } else echo "Koneksi Gagal";