Seite 1 von 1

Fehler in Funktion alpha_auslesen

Verfasst: Fr 18. Dez 2020, 20:09
von riju
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

Re: Fehler in Funktion alpha_auslesen

Verfasst: Fr 18. Dez 2020, 20:15
von Ulrich
Hallo Richard,

vielen Dank für die Informationen. Ich werde den Script korrigieren.