PHP 4.3

9.9.1

Bilden von Schlüssel/Wert-Zeichenketten

Die Vorgehensweise ist jetzt klar. Schauen Sie sich also das folgende Skript an, welches die Funktionsweise von implode() nachbildet und den Cookie schreibt.

Cookie zusammensetzen und schreiben
*1    $fehler = false;
*2    $delimiter = "@/@";
*3    $tmp = "";
*4    for($x = 0; $x < count($warenkorb); $x++) {
*5      $tmp .= $warenkorb[$x][0] . $delimiter . $warenkorb[$x][1] . $delimiter;
      }

*6    if(strlen($tmp) < 3800) {
*7       setCookie("warenkorbCookie", $tmp, 0);
      } else {
*8        $fehler = true;
      }

In Zeile *1 initialisiert das Skript eine Variable $fehler, deren Zweck es ist, einen Fehler zu signalisieren, falls der zusammengefügte String länger als 3800 Zeichen werden sollte. Wie oben bereits erläutert, wollen wir als Trennzeichen zwischen Schlüsseln und Werten die Trenn-Zeichenfolge @/@ benutzen (Zeile *2).

Um die Zeichenkette zusammenzusetzen, beginnt das Skript mit einer for-Schleife, deren Durchlaufhäufigkeit von der Zahl der Einträge im Warenkorb-Array abhängt (Zeile *4). In der Ihnen bekannten Art und Weise fügen wir bei Punkt *5 Schlüssel und Werte getrennt durch den Delimiter zusammen und hängen das Ergebnis der Zeichenkette $tmp an.

Nachdem das Array durchlaufen wurde, prüft das Skript, ob der sich ergebende String weniger als 3800 Zeichen lang ist (Zeile *6). Ist dies der Fall, wird der String $tmp unter der Bezeichnung warenkorbCookie als Cookie gespeichert (*7). Als Verfallsdatum wurde dabei 0 definiert. Wie Sie wissen, bedeutet dies, dass der Cookie verfällt, sobald das Browserfenster des Besuchers geschlossen wird.
Sollte der String hingegen länger als 3800 Bytes sein, gibt die Routine den Fehlerzustand 1 zurück (*8).

Obwohl das vorgestellte Skript im Gegensatz zu implode() noch einen Delimeter am Ende der Zeichenkette anhängt, ist es im Prinzip also nicht schwer, implode() in einem eigenen Skript nachzubilden.

Wir haben Ihnen den Ablauf noch einmal in einer kleinen Animation dargestellt:

Kommentare (0)

Ihr Kommentar

Name