Funktionen für die Stringverarbeitung

Funktionen

Funktion Beschreibung
string trim(string $zeichenkette[, string $zeichenliste])trim() entfernt am Anfang und am Ende des Strings Whitespaces/Leerzeichen und/oder andere Zeichen. Mehr hier.
int strlen(string $zeichenkette) Diese Funktion ermittelt die Länge der Zeichenkette $zeichenkette.
string nl2br(string $zeichenkette[,bool $is_xhtml = true]) Fügt vor allen Zeilenumbrüchen im übergebenden String den Wert von $zeichenkette hinzu.
string ucfirst(string $zeichenkette) Wandelt das erste Zeichen der Zeichenkette $zeichenkette in einen Großbuchstaben um.
string ucwords(string $zeichenkette) Wandelt alle ersten Buchstaben der Wörter im String $zeichenkette in einen Großbuchstaben um.
string addshlashes(string $zeichenkette) Stellt jedem zeichenkettenrelevanten Wort (wie <, >,\,' usw.) einen Backshlash (\) vor. Wird oft für Eintragungen in Datenbanken genutzt, damit ungewollte Angaben keinen Fehler generieren können.
string htmlentities(string $zeichenkette) Wandelt alle HTML Sonderzeichen in die entsprechenden HTML-Codes um. Wird heutzutage nicht mehr verwendet, da durch die Zeichensatzdefinition als UTF81) auch Umlaute korrekt dargestellt werden.

trim($zeichenkette)

trim($zeichenkette [, $zeichenliste]) entfernt an Anfang und Ende einer Zeichenkette Leerzeichen (dazu zählen die unten aufgeführten Zeichen) und falls gewünscht, verschiedene andere Zeichen. Der zweite Parameter bestimmt, falls er verwendet wird, welche Zeichen genau entfernt werden:

  • “ “ (Leerzeichen, ASCII 39 (0x20))
  • „\t“ (Zeilenvorschub(Tab), ASCII 9 (0x09)
  • „\n“ (Zeilenumbruch(„Enter“), ASCII 10(0x0A)
  • „\r“ (Wagenrücklauf, ASCII 13 (0x0D)
  • „\0“ (Das NULL-Byte ASCII 0(0x00)
  • „\x0B“ (Vertikaler Tabulator ASCII 11 (0x0B)

Parameter eins: Die Zeichenkette, welche verarbeitet(gekürzt) werden soll. Parameter zwei: Eine optionale Zeichenkette mit verschiedenen Zeichen, die am Anfang und Ende eines Strings entfernt werden. Getrennt werden diese nicht, also keine Leerzeichen oder Ähnliches.

Beispiele

Beispiel 1: Entfernen der Standard Zeichen.

<?php
  $text = "\t\n\r Hallo!";
  $resultat = trim($text);
  echo $resultat;
?>

Ausgabe:

Hallo!

Beispiel 2: Entfernen der Standardzeichen UND der Buchstaben H und l.

<?php
  $text = "\t\n\rHallo!";
  $resultat = trim($text, "\t\n\rH");
  var_dump($resultat);
?>

Ausgabe:

string(5) "allo!"

strlen($zeichenkette)

strlen zählt die Anzahl der gegebenen Zeichen und gibt diese zurück.

Beispiele

Beispiel 1: Erst werden die Zeichen gezählt, dann wird der String vergrößert, dann werden die Zeichen nochmal gezählt und beide Zahlen werden addiert und ausgegeben.

<?php
  $kette = "Hallo";
  $ketteninhalt = strlen($kette);
  $kette .= " Welt!";
  $ketteninhalt = strlem($kette) + $ketteninhalt;
  echo $ketteninhalt;
?>

Ausgabe:

16

nl2br($zeichenkette)

nl2br($char) fügt vor jedem Zeilenumbruch, welcher mittels \n oder direkt im String gewertet wird, einen HTML validen Zeilenumbruch ein.

Beispiele

Beispiel 1: Fügt vor jedem \n einen HTML-Zeilenumbruch ein.

<?php
  echo nl2br("Huhu \n Wie gehts den so? \n");
?>

Ausgabe:

Huhu<br />
Wie geht den so? <br />

ucfirst($zeichenkette)

Wandelt das erste Zeichen von $zeichenkette in einen Großbuchstaben um, wenn es ein Zeichen des Alphabets ist und gibt den veränderten String zurück.

Beispiele

Beispiel 1: Umwandeln des ersten Zeichens.

<?php
  echo ucfirst("willkommen auf proggen.org!");
?>

Ausgabe:

Willkommen auf proggen.org!

Folgendes wird nicht umgewandelt:

<?php
  echo ucfirst("2 Jäger trafen sich, beide Tot!");
?>

Ausgabe:

2 Jäger trafen sich, beide Tot!

ucwords($zeichenkette)

Gibt einen String zurück, in dem das erste Zeichen eines jeden Wortes innerhalb von $zeichenkette in einen Großbuchstaben umgewandelt wird, sofern es sich dabei um Buchstaben handelt.

Als Wort wird hierbei eine Zeichenkette verstanden, die einem Whitespace (Leerzeichen, Seitenvorschub, Zeilenvorschub, Wagenrücklauf sowie horizontalem und vertikalem Tabulatorzeichen) folgt.

Beispiele

Beispiel 1: Wandelt von allen Wörtern den ersten Buchstaben um.

<?php
  echo ucwords("ich bin auf proggen.org");
?>

Ausgabe:

Ich Bin Auf Proggen.Org

addslashes($str)

Gibt einen String (Zeichenkette) zurück, in dem bestimmten Zeichen ein Backslash „\“ voran gestellt wurde. Diese Funktion ist z.B. für Datenbankabfragen wichtig. Die behandelten Zeichen sind das einfache und das doppelte Anführungszeichen (' und “), der Backslash selbst (\) sowie NUL (das Null-Byte). Diese Funktion ist besonders für Datenbanken interessant. Da aber viele der Datenbanksysteme eigene Escape-Funktionen bereitstellen, ist diese Funktion nur ersatzweise gedacht. Dies bedeutet, dass man die Funktion bei modernen Datenbanksystemen nicht verwenden muss.

Beispiele

Beispiel 1: Gibt den Satz korrekt, d.h maskiert, aus.

<?php
$str = "Ist dein Name wirklich O'reilly?";
echo addslashes($str);
?>

Ausgabe:

Ist dein Name wirklich O\'reilly?

htmlentities($str[,$flags=EN_COMPACT | ENT_HTML401)

Die Funktion ist komplett identisch zu htmlspecialchars(), allerdings wandelt htmlentities() wirklich alle Zeichen, die eine HTML-Code-Entsprechung haben, in diese Entsprechung um.
Der erste Parameter beschreibt die Zeichenkette, welche gewandelt werden soll. Interessanter jedoch ist der zweite Parameter, welcher es Dir erlaubt, die Umwandlung zu „personalisieren“.

KonstanteBeschreibung
ENT_COMPATKonvertiert doppelte Anführungszeichen, läßt einfache aber unbehandelt.
ENT_QUOTESKonvertiert doppelte und einfache Anführungszeichen.
ENT_NOQUOTES Lässt doppelte sowie einfache Anführungszeichen unberührt.
ENT_SUBSTITUTEErsetzt ungültige Code Unit Sequenzen mit einem Unicode Ersatz Zeichen U+FFFD (UTF-8) oder &#FFFD; (andernfalls) anstatt eine leere Zeichenkette zurückzugeben.
ENT_DISALLOWEDErsetzt Code Unit Sequenzen, welche in dem angegebenen Dokumenttyp ungültig sind, mit einem Unicode Ersatz Zeichen U+FFFD (UTF-8) oder &#FFFD; (andernfalls).
ENT_HTML401 Behandle Code als HTML 4.1
ENT_XML1 Behandle Code als XML 1.0.
ENT_XHTML Behandle Code als XHTML.
ENT_HTML5 Behandle Code als HTML 5

Wie in der Fußnote erwähnt, sollte man als Zeichensatz UTF8 wählen, denn damit ist der Einsatz dieser Funktion überflüssig.


Auf der nächsten Seite werden Funktionen im Umgang mit Arrays behandelt.

1) UTF8 ist ein Zeichensatz, welcher (fast) alle Zeichen auf dieser Welt definiert hat und daher auch in deutschen Texten etwa chinesische Zeichen darstellen kann.