Я получаю данные о посещаемости от Finger Machine Solution X401.
Результат данных выглядит так:
5079 2019-11-03 17:46:07 1
5525 2019-11-03 17:47:47 1
8594 2019-11-03 18:01:15 1
8521 2019-11-03 18:32:49 1
5080 2019-11-03 18:35:48 1
15617 2019-12-03 18:42:09 1
5014 2019-12-03 19:34:05 1
5013 2019-12-03 19:40:49 1
5013 2019-12-03 19:40:50 1
5013 2019-12-03 19:40:52 1
7345 2019-12-03 20:28:17 1
15617 2019-12-04 06:42:46 0
Вот код PHP:
$IP="192.168.182.110";
$Key="123456";
if($IP=="") $IP="192.168.182.110";
if($Key=="") $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";
$fromDateTime = "2019-11-03 17:00:00";
$toDateTime = "2019-11-03 19:00:00";
$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>");
$datetime = Parse_Data($data,"<DateTime>","</DateTime>");
$pin = Parse_Data($data,"<PIN>","</PIN>");
$status = Parse_Data($data,"<Status>","</Status>");
if($datetime < $toDateTime && $datetime > $fromDateTime)
{
echo "<br>";
echo $datetime;
echo "<br>";
}
ini_set('max_execution_time', 300);
}
Функция разбора данных
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;
}
При запуске скрипта он мне ничего не показывает. Мне нужно получить конкретные c данные с параметром даты от 2019-11-03 17:00:00
до 2019-11-03 19:00:00
.
Есть ли способ сделать это?