Weitere Zeichenketten-Funktionen

Die HTML-Anweisungen der Beispiele wurden mit einem Leerzeichen ungültig gemacht, damit sie nicht ausgeführt werden. Für korrekte HTML-Anweisungen ersetze die Zeichenfolge '< ' durch '<'.

Zeichenketten und Arrays

< html>
< body>
< ?php
   $test = "Dies ist ein kurzer Satz";
   $worte = explode(" ",$test);
   $lg = sizeof($worte);
   for($i=0; $i<$lg; $i++)
   {
      echo "Wort $i: $worte[$i] < br>";
   }
   echo "< p>";

   $feld = array(17.5, 19.2, 21.8, 21.6, 17.5);
   $test = implode(";",$feld);
   echo "Eine Zeichenkette:
$test"; ?> < /body> < /html>

Teilzeichenketten

< html>
< body>
< ?php
   $test = "info@rz.uni-hannover.de";
   echo "Teil-Zeichenketten:< p>";
   echo "< TABLE BORDER>";
   echo "< TR> < TD>Funktion< /TD> < TD>Erläuterung< /TD>
         < TD>Ergebnis< /TD> < /TR>";
   echo "< TR> < TD> < /TD> < TD>Original< /TD>
         < TD>$test< /TD> < /TR>";
   $sub1 = substr($test,3);
   echo "< TR> < TD>substr< /TD> < TD>ab Zeichen 3 bis Ende
         < TD>$sub1< /TD> < /TR>";
   $sub2 = substr($test,3,5);
   echo "< TR> < TD>substr< /TD> < TD>ab Zeichen 3,
         5 Zeichen< /TD> < TD>$sub2< /TD> < /TR>";
   $sub3 = substr($test,-5);
   echo "< TR> < TD>substr< /TD> < TD>ab fünftletztem
         Zeichen bis Ende< /TD> < TD>$sub3< /TD> < /TR>";
   $sub4 = substr($test,-5,2);
   echo "< TR> < TD>substr< /TD> < TD>ab fünftletztem Zeichen,
         2 Zeichen< /TD> < TD>$sub4< /TD> < /TR>";
   $xdomain = strstr($test, "@");
   echo "< TR> < TD>strstr< /TD> < TD>ab Zeichen @,
         bis Ende< /TD> < TD>$xdomain< /TD> < /TR>";
   $domain = substr($xdomain,1);
   echo "< TR> < TD>substr< /TD> < TD>hinter Zeichen @,
         bis Ende< /TD> < TD>$domain< /TD> < /TR>";
   $xcountry = strrchr($test, ".");
   echo "< TR> < TD>strrchr< /TD> < TD>ab letztem Zeichen
         'Punkt', bis Ende< /TD> < TD>$xcountry< /TD> < /TR>";
   $country = substr($xcountry,1);
   echo "< TR> < TD>substr< /TD> < TD>hinter letztem Zeichen
         'Punkt', bis Ende< /TD> < TD>$country< /TD> < /TR>";
   echo "< /TABLE>";
?>
< /body>
< /html>

Suche nach Zeichenketten

< html>
< body>
< ?php
   $test = "info@edvgruppe.biologie.uni-hannover.de";

   echo "Suchen in Zeichenketten:< p>";
   echo "< TABLE BORDER>";
   echo "< TR> < TD>Funktion< /TD> < TD>Erläuterung< /TD>
         < TD>Ergebnis< /TD> < /TR>";
   echo "< TR> < TD> < /TD> < TD>Original< /TD>
         < TD>$test< /TD> < /TR>";
   $pos1 = strpos($test,".");
   echo "< TR> < TD>strpos< /TD> Position des ersten
         Zeichens 'Punkt'< /TD> < TD>$pos1< /TD> < /TR>";
   $pos2 = strpos($test,".",15);
   echo "< TR> < TD>strpos< /TD> < TD>Position des ersten
         Zeichens 'Punkt', ab Position 10< /TD>
         < TD>$pos2< /TD> < /TR>";
   $pos3 = strrpos($test,".");
   echo "< TR> < TD>strrpos< /TD> < TD>Position des letzten
         Zeichens 'Punkt'< /TD> < TD>$pos3< /TD> < /TR>";
   echo "< /TABLE>";
?>
< /body>
< /html>

Vergleich von Zeichenketten

< html>
< body>
< ?php
   $ErsterName = "Maier";
   $ZweiterName = "Mertens";
   $DritterName = "maier";
   echo "Mit Beachtung der Groß- und Kleinschreibung
        (strcmp):< p>";
   if (strcmp($ErsterName,$ZweiterName) < 0)
      echo "$ErsterName steht vor $ZweiterName< p>";
   else
      echo "$ZweiterName steht vor $ErsterName< p>";
   if (strcmp($ZweiterName,$DritterName) < 0)
      echo "$ZweiterName steht vor $DritterName< p>";
   else
      echo "$DritterName steht vor $ZweiterName< p>";
   echo "Ohne Beachtung der Groß- und Kleinschreibung
       (strcasecmp):< p>";
   if (strcasecmp($ZweiterName,$DritterName) < 0)
      echo "$ZweiterName steht vor $DritterName< p>";
   else
      echo "$DritterName steht vor $ZweiterName< p>";
   echo "Ähnlichkeit (similar_text):< p>";
   $erg1 = similar_text($ErsterName,$ZweiterName);
   $erg2 = similar_text($ErsterName,$DritterName);
   echo "Zwischen $ErsterName und $ZweiterName:
        $erg1 gleiche Buchstaben< p>";
   echo "Zwischen $ErsterName und $DritterName:
        $erg2 gleiche Buchstaben< p>";
?>
< /body>
< /html>

Codierung von Zeichen

< html>
< body>
< ?php
   echo "< TABLE BORDER>< TR>";
   for ($i=32; $i<=255; $i++)
   {
      echo "< TD>$i< /TD>< TD>< B>" . chr($i) . "< /B>< /TD>";
      if ($i%12 == 7) echo "< /TR>< TR>";
   }
   echo "< /TR>< /TABLE>";
?>
< /body>
< /html>

Beispiel: Kryptographie

uj07.htm:
< html>
< body>
Tragen Sie einen Satz zum Verschlüsseln ein,
und senden Sie das Formular ab
< form action = "uj07.php" method = "post"> < input name="test" size="50">< p> < input type="submit" value="Absenden">< p> < /form> < /body> < /html> uj07.php: < html> < body> < ?php echo "$test < p>"; // Länge der Zeichenkette $lg = strlen($test); // Datei zum Schreiben öffnen und sperren $fp = fopen("uj07data.txt","w"); if ($fp) flock($fp,2); else { echo "Datei konnte nicht zum"; echo " Schreiben geöffnet werden"; } // Jedes Zeichen einzeln umwandeln for($i=0; $i<$lg; $i++) { // ein Zeichen extrahieren $char = substr($test,$i,1); // Code des Zeichens feststellen $code = ord($char); // Code des neuen Zeichens ermitteln $newcode = $code + 1; // Neues Zeichen erzeugen, ausgeben $newchar = chr($newcode); echo $newchar; // Zusätzlich in Datei ausgeben if ($fp) fputs ($fp, $newchar); } // Sperre aufheben, schließen if ($fp) { flock($fp,3); fclose($fp); } ?> < /body> < /html>