BayuPinasthika
Bayu Pinasthika
25 Apr 2017

Mengambil Data Absensi X100C Dengan PHP

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.

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.

PHP • Teknologi Informasi Leave a comment
%d blogger menyukai ini: