Hallo !
ich habe einen Fehler in der Funktion alpha_auslesen entdeckt und korrigiert. (Version 4.6.9c)
Der Fehler hat sich dadurch geäußert, dass teilweise keine gültige Daten empfangen wurden.
Beim Debugging habe ich festgestellt, dass Daten verloren gegangen sind obwohl diese mit fgets gelesen wurden.
Problem war die Abfrage if( trim($Antwort)=="")
trim ist eine Stringfunktion die Whitespaces aus der Zeichenkette entfernt. -> https://www.php.net/manual/en/function.trim.php
Wenn nun nur ein "Whitespace" Zeichen empfangen wird, wird dies gelöscht und somit nicht an $Ergebnis angehängt
Hier handelt es sich aber um binary daten.
Ich habe dies wie folgt geändert und es läuft nun stabil:
Statt ursprünglich:
$Antwort = fgets($Device,2048)
if( trim($Antwort)=="") { ...
Neu: -> https://www.php.net/manual/de/function.fgets.php
if (($Antwort = fgets($Device,2048))==false) { .....
Siehe auch PHP Handbuch
Wäre super wenn dies in zukünftigen Versionen aufgenommen wird
Gruß
Richard
Fehler in Funktion alpha_auslesen
Moderator: Ulrich
- Ulrich
- Administrator
- Beiträge: 5997
- Registriert: Sa 7. Nov 2015, 10:33
- Wohnort: Essen
- Hat sich bedankt: 153 Mal
- Danksagung erhalten: 814 Mal
- Kontaktdaten:
Re: Fehler in Funktion alpha_auslesen
Hallo Richard,
vielen Dank für die Informationen. Ich werde den Script korrigieren.
vielen Dank für die Informationen. Ich werde den Script korrigieren.
-----------------------------------------------------
Ulrich . . . . . . . . [ Admin ]
Ulrich . . . . . . . . [ Admin ]