From ef43b2c1bc0daeff00fa3ab11636e164d66de77b Mon Sep 17 00:00:00 2001 From: FHBGLD <33415881+FHBGLD@users.noreply.github.com> Date: Fri, 14 Jan 2022 08:22:44 +0100 Subject: [PATCH] transform_kartennummer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit transform_kartennummer mit variabler länge --- include/betriebsmittel.class.php | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/include/betriebsmittel.class.php b/include/betriebsmittel.class.php index d3e208076..74671a9d1 100644 --- a/include/betriebsmittel.class.php +++ b/include/betriebsmittel.class.php @@ -1186,7 +1186,23 @@ class betriebsmittel extends basis_db //Kartennummern die im Hex-Format sind werden umgewandelt if (!is_numeric($kartennummer)) { - $kartennummer=substr($kartennummer,strlen($kartennummer)-2,2).substr($kartennummer,strlen($kartennummer)-4,2). substr($kartennummer,strlen($kartennummer)-6,2).substr($kartennummer,0,2); + //$kartennummer=substr($kartennummer,strlen($kartennummer)-2,2).substr($kartennummer,strlen($kartennummer)-4,2). substr($kartennummer,strlen($kartennummer)-6,2).substr($kartennummer,0,2); + $tmp_kn_str = null; + for ($i=0; strlen($kartennummer) > $i; $i+=2) { + + #wenn die strlen($kartennummer) gerade ist (TW hat 8 Stellen, FHB 14 Stellen) + $tmp_kn_str .= substr($kartennummer,strlen($kartennummer)-($i+2),2); + + //#wenn ich ungerade und der letzte Durchgang ist dann nur mehr die eine Nummer nach vorne + //if ((strlen($kartennummer)%2 != 0) && ($i+2 > strlen($kartennummer))) { + // $tmp_kn_str .= substr($kartennummer,strlen($kartennummer)-($i+1),1); + //#sonst normal immer 2 stellen nach vorne ruecken + //} else { + // $tmp_kn_str .= substr($kartennummer,strlen($kartennummer)-($i+2),2); + //} + } + $kartennummer = $tmp_kn_str; + $kartennummer=hexdec( $kartennummer); }