Код: Выделить всё
public function tarikDataAbsen(AttendanceMachineInformation $attendanceMachineInformation): JsonResponse
{
$ip = $attendanceMachineInformation->ip_address;
$port = $attendanceMachineInformation->port;
$key = $attendanceMachineInformation->key;
$connect = fsockopen($ip, $port, $errno, $errstr, 1);
dd($connect);
$buffer = "";
if ($connect) {
$soapRequest = "" . $key . "
All";
$newLine = "\r\n";
fwrite($connect, "POST /iWsService HTTP/1.0" . $newLine);
fwrite($connect, "Content-Type: text/xml" . $newLine);
fwrite($connect, "Content-Length: " . strlen($soapRequest) . $newLine . $newLine);
fwrite($connect, $soapRequest . $newLine);
while ($response = fgets($connect, 1024)) {
$buffer .= $response;
}
} else {
echo "Koneksi Gagal";
}
$buffer = $this->parseData($buffer, "", "");
// dd($buffer);
$buffer = explode("\r\n", $buffer);
$export = [];
for ($a = 0, $aMax = count($buffer); $a < $aMax; $a++) {
$data = $this->parseData($buffer[$a], "", "");
$export[$a]['pin'] = $this->parseData($data, "", "");
$export[$a]['waktu'] = $this->parseData($data, "", "");
$export[$a]['status'] = $this->parseData($data, "", "");
}
return response()->json($export);
}
Код: Выделить всё
private function parseData($data, $p1, $p2): string
{
$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;
}
и когда я добавляю функцию fgets, она возвращает false, кто-нибудь может помочь? спасибо.
Я пробовал использовать ZKLib, но ответ занимал слишком много времени.
Подробнее здесь: https://stackoverflow.com/questions/788 ... laravel-10