PHP – Aus einer Zeichenkette (String) eine eindeutige Zahl generieren

Benötigt wurde diese Funktion für den Modified Shop in Verbindung mit einen Datenimport für Artikel aus einem anderen System.
Der Modified Shop arbeitet intern nicht mit Artikelnummern, sondern mit einer eindeutigen ID welche als integer mit 10 Stellen definiert ist.
Eine fortlaufende Generierung einer ID ist nicht zu empfehlen, da bei einem neuen Import sich die ID zur Artikelnummer verändern kann. Somit hätte man zum Beispiel auf einmal ganz andere Artikel im Warenkorb oder in der Wunschliste.
Um das zu verhindern kann eine eindeutige ID in Abhängigkeit zur Artikelnummer generiert werden.
Die Feldlänge der products_id sollte in der Datenbank entsprechend angepasst werden.

Beispiel:
Artikelnummer: ü45×13
Generierte ID: 252451201

Numerische Werte im String bleiben erhalten.
Alle anderen Werte werden durch die Funktion ord() in ihr dezimales Pendant der ASCII Table konvertiert.

<?php
$value_1 = "0ü45x13";
echo $value_1."<br />"; //Kontrolle

if (is_numeric($value_1)) {$value_1 = $value_1;} else {$value_1 = ascii_to_dec($value_1);}
echo $value_1; //Kontrolle

function ascii_to_dec($str) {
  $varString = "";
  for ($i = 0, $j = strlen($str); $i < $j; $i++) {
    if (is_numeric($str{$i})) {
        $varString .= $str{$i};
    } 
    else {
        $varString .= ord($str{$i});
    }
  }
  return $varString;
}
?>
Veröffentlicht unter Programierung, Shop Systeme Getagged mit: ,

Hinterlasse eine Antwort

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close