PHP получить данные от указанной c даты от Finger Machine Data - PullRequest
0 голосов
/ 25 февраля 2020

Я получаю данные о посещаемости от 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.

Есть ли способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...