Werbung einblenden Werbung ausblenden


Home / Tutorials / PHP Handbuch / Bearbeiten von Zeichenketten


Die Funktionen zum Bearbeiten von Zeichenketten
Die Funktionen htmlentitities und htmlspecialchars
Die Funktion get_meta_tags: liest Meta-Tags aus und schreibt gefundene Einträge in ein Array
Die Funktion nl2br
Die Funktion strip_tags: Entfernen bestimmter HTML tags
Die Funktionen wordwrap und chunk_split: Umbrechen nach einer bestimmten Anzahl von Zeichen
Die Funktion similar_text: Ähnlichkeiten zwischen zwei Zeichenketten ermitteln
Die Funktion metaphone: Zeichenketten auf Ähnlichkeiten in der Aussprache überbrüfen
Die Funktionen implode und join: Arrayelemente zu einer Zeichenkette zusammenfassen
Die Funktionen explode, split, strtok: Zeichenkette anhand eines Delimiters trennen und die Einzelteile einem Array zuweisen
Die Funktionen strchr, strrchr, stristr: Zeichenketten in Zeichenketten finden
Die Funktion stristr: Suchen ohne Berücksichtigung der Gross- und Kleinschreibung
Die Funktion strchr: Suchen mit Berüchsichtigung der Gross- und Kleinschreibung
Die Funktion strrchr: Suchen nach dem letzten Treffer
Die Funktion strpos: Die Position ermitteln, wo das gesuchte Wort zum erstenmal auftritt
Die Funktion strrpos: Die Position ermitteln, wo das gesuchte Wort zum letztenmal auftritt
Die Funktion strspn: Die Position des Zeichens ermitteln, das in einer anderen Zeichenkette
nicht enthalten ist

Die Funktion strclspan: Die Position ermitteln, in der zum ersten Mal ein Zeichen aus der einen Zeichenkette in der anderen Zeichenkette enthalten
Die Funktion chop: Carriage return, tab, Leerzeichen am Ende einer Zeichenkette entfernen
Die Funktion ltrim: Leerzeichen und newlines am Anfang einer Zeile entfernen
Die Funktion trim: Überflüssige Zeichen am Anfang oder Ende entfernen
Die Funktion strlen: Ermitteln der Länge einer Zeichenkette
Die Funktion count_chars: Ermitteln wie oft die einzelnen Zeichen in einer Zeichenkette vorkommen
Die Funktionen ucfirt, ucwords, stroupper: Kleinbuchstaben in Großbuchstaben konvertieren
Die Funktion strtlower: Großbuchstaben in Kleinbuchstaben umwandeln

Funktionen zum Bearbeiten von Zeichenketten

PHP ist, ähnlich wie Perl, als Programmiersprache, die überwiegend für die Internetprogrammierung eingesetzt wird, für die Verarbeitung von Texten optimiert. PHP stellt hierfür fast 60 Funktionen zur Verfügung. Manche dienen auch ausschliesslich der Verarbeitung von HTML Dokumenten. Teilweise lassen sich die Probleme, die mit diesen Funktionen gelöst werden, auch über Regular Expressions lösen. Vor allem für Leute mit wenig Erfahrung, ist es aber wohl einfacher, auf eine fertige Funktion zurückzugreifen. Für Leute mit mehr Programmiererfahrung dürfte es einfacher sein, diese Funkionalitäten mit regular expression zu realisieren. Die wichtigsten Funktionen sollen hier vorgestellt werden.

Die Funktionen htmlentitities und htmlspecialchars

Mit der Funktion htmlentities werden alle HTML Tags in die entsprechenden Character Entity umgewandelt. Das heisst zu Deutsch aus < wird <, aus > wird > aus ä wird &aauml etc. Dass man z.B. deutsche ä,ö,ü,ß, spanische Tilde, französchische ceguille etc. etc. umwandeln will, ist relativ klar. Damit wird garantiert, dass diese Zeichen mit jedem Browser gelesen werden können. Die Frage, die sich stellt ist, warum soll man HTML Tags umwandeln ? Man will das z.B. wenn man verhindern will, dass der User in ein Gästebuch, Chat, Forum etc. etc. HTML Tags übergibt. Wandelt man diese in Character Entitis um, sieht man den HTML Quellcode im Browser, aber der HTML Code wird nicht mehr als HTML dargestellt. Häufiger ist natürlich das Problem, dass man nur die eigentlichen HTML Tags umwandeln will, das kann man dann machen mit der Funktion htmlspecialchars. Letztere Funktion ist z.B. dann sehr nützlich, wenn man Handbücher zu HTML schreibt, und in diesem Zusammenhang will, dass der HTML Quellcode nicht interpretiert, sondern im Browser angezeigt wird.

<?
$htmlseite="
<html>
<head><title>Testseite</title></head>
<body>Hallo Andrés Ehmann ! Wie geht´s ?</body>
</html>";
$mod_htmlseite=htmlentities($htmlseite);
print $mod_htmlseite;
?>

Das Ergebnis sieht dann so aus:

&lt;html&gt;
&lt;head&gt;&lt;title&gt;Testseite&lt;/title&gt;&lt;/head&gt;
&lt;body&gt;Hallo Andr&eacute;s Ehmann ! Wie geht&acute;s ?&lt;/body&gt;
&lt;/html&gt;

Im Browser sieht man das:

<html> <head><title>Testseite</title></head> <body>Hallo Andrés Ehmann ! Wie geht´s ?</body> </html>


Also den Orginal HTML Quelltext.

Das gleiche mit htmlspecialchars sieht so aus.


<?
$htmlseite="
<html>
<head><title>Testseite</title></head>
<body>Hallo Andrés Ehmann ! Wie geht´s ?</body>
</html>";
$mod_htmlseite=htmlspecialchars($htmlseite);
print $mod_htmlseite;
?>

Das Ergebnis sieht dann so aus:

&lt;html&gt;
&lt;head&gt;&lt;title&gt;Testseite&lt;/title&gt;&lt;/head&gt;
&lt;body&gt;Hallo Andrés Ehmann ! Wie geht´s ?&lt;/body&gt;
&lt;/html&gt;

Was im Browser wiederum so aussieht:

<html> <head><title>Testseite</title></head> <body>Hallo Andrés Ehmann ! Wie geht´s ?</body> </html>

Wie deutlich zu erkennen, wurden bei der Funktion htmlscpecialchars nur die eigentlichen HTML Tags umgewandelt, die sonstigen Sonderzeichen, wie é und ´ blieben erhalten.

Funktion get_meta_tags: liest Meta-Tags aus und schreibt gefundene Einträge in ein Array

Dieses Sript

<?
$array = get_meta_tags("test.html");
foreach($array as $key => $element)
{
print $key." -> ".$element."<br>" ;
}
?>

angewendet auf eine Datei folgenden Inhalts

<HEAD>
<META NAME="AUTHOR" CONTENT="Schneewittchen">
<META NAME="KEYWORDS" lang="de" CONTENT="sieben, Zwerge">
<META NAME="CHANGED" CONTENT="16010101;0">
</HEAD>

erzeugt die Ausgabe:

author -> Schneewittchen
keywords -> sieben, Zwerge
changed -> 16010101;0

Die Funktion nl2br

Bei Gästebüchern, Foren, Chats, Anzeigenmärkten kann es sein, dass der User nach bestimmten Zeilen durch drücken der Return-Taste umbricht, z.B. ist sowas:
Hallo Leute,
ich hätte mal eine Frage

Ist übersichtlicher als:

Hallo Leute, ich hätte mal eine Frage

Das Problem dabei ist, dass das Zeichen, dass den Umbruch darstellt, \n oder \r\n vom Browser nicht interpretiert wird, die Umbrüche des Users sind also bei der Ausgabe im Browser nicht mehr sichtbar. Zur Lösung dieses Problems stellt PHP nun eine eigene Funktion zur Verfügung, nämlich nl2br.

<?
$string="Hallo Leute,
ich hätte mal eine Frage";
$string_mod=nl2br($string);
print $string_mod;
?>

Das führt dann zu diesem Ergebnis:

Hallo Leute,<br />
ich hätte mal eine Frage

was im Browser wiederum dann so aussieht:

Hallo Leute,
ich hätte mal eine Frage

Die Funktion strip_tags: Entfernen bestimmter HTML tags


Alle tags zu entfernen ist mit regular expression sehr einfach. Sollen aber einige HTML Tags erhalten bleiben, wird es schwierig. Von daher ist die Funktion strip_tag ausgesprochen nützlich. Brauchen kann man sowas, wenn man z.B. in einem Gästebuch alle HTML Tags aus Sicherheitgründen entfernen will, aber den img oder href tag oder mailto Tag stehen lassen will.

<?
$html_seite="
<html><head><title>Hello</title></head>
<body>
Das lassen wir stehen: <img src=wirtschaft.jpg>
Das auch: <A href=http://www.infos24.de>www.infos24.de</A>
<table>
<tr><td>Name</td><td>Andres Ehmann</td></tr>
<tr><td>Telefon</td><td>030-47301388</td></tr>
</table>
<font color=blue size=5>Hello</font><br>
</body>
</html>";
$html_seite_mod=strip_tags($html_seite,'<a>,<img>');
?>

Das Ergebnis sieht dann so aus:

Hello

Das lassen wir stehen: <img src=wirtschaft.jpg>
Das auch: <A href=http://www.infos24.de>www.infos24.de</A>
NameAndres Ehmann
Telefon030-47301388
Hallo

Die Funktionen wordwrap und chunk_split: Umbrechen nach einer
bestimmten Anzahl von Zeichen

Die meisten Gästebücher, Foren, Chats im Netz lassen sich relativ leicht abschiessen. Es reicht eine Zeichenkette ohne Leerzeichen einzugeben, die den Raum, der zur Verfügung steht sprengt, also z.B. 400 Buchstaben hintereinander ohne Leerzeichen. Der Browser muss dann unten scrollen, was das Design meistens durcheinanderwirbelt. Mit wordwrap kann man nach einer bestimmten Anzahl von Zeichen den Umbruch erzwingen.

<?
$string="die_killervariante_für_jedes_Gästebuch_der_User_gibt".
"_einfach_kein_Leerzeichen_ein_dann_kann auch_nirgends_umgebrochen_werden_alles_futsch";
$string_mod=wordwrap($string,20,"<br>",1);
print $string_mod;
?>

Das Ergebnis sieht als Quelltext dann so aus:

die_killervariante_f<br>ür_jedes_Gästebuch_d<br>er_User_gibt_einfach<br>_kein_Leerzeichen_ei<br>
n_dann_kann<br>auch_nirgends_umgebr<br>ochen_werden_alles_f<br>utsch


Im Browser so:

die_killervariante_f
ür_jedes_Gästebuch_d
er_User_gibt_einfach
_kein_Leerzeichen_ei
n_dann_kann
auch_nirgends_umgebr
ochen_werden_alles_f
utsch

So wird garantiert, dass zumindest mit dieser simplen Methode Einträge in Internetdienste die Anwendung nicht zerschiessen. Die einzelnen Parameter bedeuten hier folgendes.

(1) $string => ist die Zeichenkette, auf die Funktion wordwrap angewendet werden soll
(2) 20 => ist die Anzahl der Zeichen, nachder umgebrochen werden soll
(3) <br> => ist das Zeichen, dass nach jeder Zeile steht
(4) 1 => zeigt an, dass nach dem unter (2) genannten Wert umgebrochen wird.
Steht statt 1 eine 0, wird nach 75 Zeichen umgebrochen


Das gleiche lässt sich auch mit chunk_split erreichen


<?
$string="die_killervariante_für_jedes_Gästebuch_der_User_gibt_einfach_".
"kein_Leerzeichen_ein_dann_kann auch_nirgends_umgebrochen_werden_alles_futsch";
$string_mod=chunk_split($string,20,"<br>");
print $string_mod;
?>

Der einzige Unterschied besteht darin, dass hier der letzte Parameter fehlt. Wird keine Zahl angegeben, wird nach 75 Zeichen umgebrochen.

Die Funktion similar_text: Ähnlichkeiten zwischen zwei Zeichenketten ermitteln

similar_text ermittelt die Ähnlichkeit zwischen zwei Zeichenketten. Anwendungen wäre Vergleich von Gensequenzen und deren Mutanten, die Suche nach Namen, wo man sich nicht ganz sicher ist, wie man sie schreibt (Meier, Maier) etc. Dies ist mal zur Abwechslung eine Funktion, die mit regular expression nicht so einfach nachprogrammiert werden kann.

<?
$string_eins="Schmitt";
$string_zwei="Schmidt";
$gleiche_buchstaben = similar_text($string_eins,$string_zwei);
print $gleiche_buchstaben;
?>

Da kommt dann 6 raus, weil sechs Buchstaben gleich sind. Wer sich jetzt noch die Prozentzahl ausrechnen lassen will, etwa weil er nur die Werte sehen will, die eine bestimmte kritischen Bereich übersteigen, kann sowas machen.

<?
$string_eins="Schmitt";
$string_zwei="Schmidt";
$gleiche_buchstaben = similar_text($string_eins,$string_zwei,$prozent);
print "$gleiche_buchstaben <br>";
print $prozent;
?>

Für $prozent erhalten wir dann 85.7142857143 (6/7 * 100).

Die Funktion metaphone: Zeichenketten auf Ähnlichkeiten in der Aussprache überbrüfen

Basierend auf der englischen Aussprache, führt metaphone eine Transformation durch, die bewirkt, dass Buchstaben die gleich ausgesprochen aber verschieden geschrieben werden, auf einen identischen Lautwert zurück. So wird zum Beispiel der Buchstabe g zu j reduziert, wenn er vor i (gipsy) oder e (geography) steht, was dann den selben Lautwert hat wie j (jack). Das stimmt natürlich nicht immer. Zum Beispiel wird h nach Vokal eliminiert, was z.B. im Persischen falsch ist, Vokale können dort ein angehängtes h haben (ga'hi =manchmal). Die Transformation von v zu f ist im Spanischen falsch, dort ist v ein als bilabialer frikativ Laut ausgesprochenes b. C müsste im Italienischen nach i oder e zu tsch transformiert werden (ciao) etc. etc. Als Annäherung ist es aber sicher nicht schlecht. Skurril ist, dass Vokale eliminiert werden. Wir wählen als Beispiel etwas wo es 100 % funktioniert.

<?
$name_eins="Ehmann";
$name_zwei="Eman";
$aehnlich_eins=metaphone( $name_eins);
$aehnlich_zwei=metaphone( $name_zwei);
print "phonetische Transformation des ersten Wertes:$aehnlich_eins <br>";
print "phonetische Transforamtion des zweiten Wertes:$aehnlich_zwei <br>";
?>

Die phonetische Transformation ergibt für beide Wörter EMN.
Hat man die phonetische Transformation, kann man schauen, ob ein Teil dieser Lautkette in einer anderen enthalten ist.

<?
$name_eins="Maier";
$name_zwei="Meier";
print metaphone($name_eins);
print metaphone($name_zwei);
if (metaphone($name_eins) == metaphone($name_zwei))
{
print "Wahrscheinlich sind es verschieden Typen, aber es sind Allophone, Gleichklinger";
}
?>

Schon bei der folgenden Variante, steigt metaphone aus:

<?
$name_eins="Mayer";
$name_zwei="Meier";
print metaphone($name_eins);
print metaphone($name_zwei);
if (metaphone($name_eins) == metaphone($name_zwei))
{
print "Wahrscheinlich sind es verschieden Typen, aber es sind Allophone, Gleichklinger";
}
?>

Auf dem Bildschirm erscheint:

MYR
MR

obwohl Mayer und Maier phonetisch völlig identisch sind.

Die Funktionen implode und join: Arrayelemente zu einer Zeichenkette zusammenfassen

Mit implode und join kann man die Elemente eines Arrays zu einer Zeichenkette zusammenfügen. Die Befehle implode und join sind völlig identisch. Wahrscheinlich gibt es zwei Befehle dafür, um die Perl Programmier nicht zu verwirren. In Perl heisst der Befehl join.

<?
$kuchen=array("Zucker","Schmalz","Butter","Salz","Milch","Mehl","Safran");
$satz=join(" und ",$kuchen);
print $satz;
?>

oder mit implode

<?
$kuchen=array("Zucker","Schmalz","Butter","Salz","Milch","Mehl","Safran");
$satz=implode(" und ",$kuchen);
print $satz;
?>

Die Funktionen explode, split, strtok: Zeichenkette anhand eines Delimiters trennen und die Einzelteile einem Array zuweisen

Auch explode und split bewirken das gleiche. Mit diesen Funktionen lassen sich Daten, die in Form eines strukturierten Textes vorliegen, einem Array zuweisen.

<?
$string="Hans Maier::Kurfüstendamm 115::030-34534567::13245 Berlin::Diplom Ing. Elektrotechnik";
$wert=split("::",$string);
foreach ($wert as $einzelteile)
{
print "$einzelteile <br>";
}
?>

Das Ergebnis sieht im Browser so aus:

Hans Maier
Kurfüstendamm 115
030-34534567
13245 Berlin
Diplom Ing. Elektrotechnik

Alternativ könnte man es auch mit explode machen

<?
$string="Hans Maier::Kurfüstendamm 115::030-34534567::13245 Berlin::Diplom Ing. Elektrotechnik";
$wert=explode("::",$string);
foreach ($wert as $einzelteile)
{
print "$einzelteile <br>";
}
?>

Die dritte Variante, nämlich strtok

<?
$string="Hans Maier::Kurfüstendamm 115::030-34534567::13245 Berlin::Diplom Ing. Elektrotechnik";
$wert=strtok($string,"::");
while ($wert)
{
print strtok("::") ."<br>";
}
?>

Das Ergebnis ist das gleiche wie oben.

Die Funktionen strchr, strrchr, stristr: Zeichenketten in Zeichenketten finden

Diese Funktionen lassen sich ohne weiteres durch regular expression nachbilden. Unter Umständen ist es aber einfacher man macht es mit diesen Funktionen.

Die Funktion stristr: Suchen ohne Berücksichtigung der Gross- und Kleinschreibung

<?
$string_eins="Ich war einmal am Ganges, ich war einmal am Nil, da sah ich etwas langes,".
"das war ein Krokodil";
$string_zwei="Langes";
$treffer=stristr($string_eins,$string_zwei);
print $treffer;
?>

Das Ergebnis ist:

langes, das war ein Krokodil


Das heisst, die Funktion wirft alles aus, was auf den Treffer folgt (inklusive das gesuchte Wort). Gross- und Kleinschreibung wird hierbei nicht berücksichtigt. Wird nichts gefunden, kommt undef zurück, was gleichbedeutend mit false ist. Wer Gross- und Kleinschreibung berücksichtigen will muss die Funktion strchr verwenden.

Die Funktion strchr: Suchen mit Berüchsichtigung der Gross- und Kleinschreibung

<?
$string_eins="Ich war einmal am Ganges, ich war einmal am Nil, da sah ich etwas langes,".
" das war ein Krokodil";
$string_zwei="langes";
$treffer=strchr($string_eins,$string_zwei);
print $treffer;
?>

Das Ergebnis ist das gleiche wie oben, allerdings würde die Funktion strchr nichts liefern, wenn man Langes schreiben würde.
Während stristr und strchr nach dem ersten Vorkommen eines Zeichens suchen und den Rest ausgeben, sucht strrchr nach dem letzten Vorkommen des gesuchten Wortes und wirft dann den Rest aus.

Die Funktion strrchr: Suchen nach dem letzten Treffer

<?
$string_eins="Cola ist toll. Coca Cola ist gesund";
$string_zwei="Cola";
$treffer=strrchr($string_eins,$string_zwei);
print $treffer;
?>

Das Ergebnis ist:

Cola ist toll
strchr würde hier "Cola ist toll. Coca Cola ist gesund" liefern.

Die Funktion strpos: Die Position ermitteln, wo das gesuchte Wort zum erstenmal auftritt

Diese Funktion sieht vielleicht trivial aus, ist sie aber leider nicht. Es ist schwierig, sie mit einer regular expression nachzubilden.

<?
$string_eins="Hochschätzen kann nur, wer sich nicht selbst sucht";
$string_zwei="sich";
$treffer=strpos($string_eins,$string_zwei);
print $treffer;
?>

Das Wort "sich" befindet ist das 28 Zeichen der Zeichenkette, wenn bei 0 angefangen wird zu zählen. Wenn man es braucht, kann man noch einen dritten Parameter dazu geben, der angibt, ab wo die Suche gestartet werden soll.

<?
$string_eins="Hochschätzen kann nur, wer sich nicht selbst sucht";
$string_zwei="ch";
$treffer=strpos($string_eins,$string_zwei,7);
print $treffer;
?>

$treffer hat den Wert 29, weil das erst ch übersprungen wird, da die 7 anzeigt, dass die Suche erst danach starten soll.

Die Funktion strrpos: Die Position ermitteln, wo das gesuchte Wort zum letztenmal auftritt

Während strpos den Wert ermittlelt, wo das Wort zum erstenmal, bzw. nach dem festgelegten Abschnitt zum erstenmal auftritt, ermittelt strrpos die Position, wo das Wort zum letzten Mal auftritt.

<?
$string_eins="Hochschätzen kann nur, wer sich nicht selbst sucht";
$string_zwei="s";
$treffer=strrpos($string_eins,$string_zwei);
print $treffer;
?>

$treffer hat jetzt nicht den Wert 4, also die Position des ersten Treffer, sondern 45, die Position des letzten reffers.

Die Funktion strspn: Die Position des Zeichens ermitteln, das in einer anderen Zeichenkette nicht enthalten ist

Es ist auch möglich, die Position des Zeichens zu ermitteln, dass in dem String, mit dem verglichen wird, nicht enthalten ist.

<?
$string_eins="Mayer";
$string_zwei="Meyer";
$treffer=strspn($string_eins,$string_zwei);
print $treffer;
?>

Das Ergebnis ist 1 wie M, da das darauffolgende Zeichen a/e nicht mehr identisch ist. Die Reihenfolge spielt hierbei übrigens keine Rolle, wie folgendes Beispiel zeigt:

<?
$string_eins="mayer";
$string_zwei="Schmidt";
$treffer=strspn($string_eins,$string_zwei);
print $treffer;
?>

m wurde mit Absicht gewählt, da sonst schon M als ungleich erkannt wird. Die Funktion strspan ist case sensitive. Als Ergebnis liefert das Beispiel oben 1 da a das Zeichen ist, was in Schmidt nicht vorhanden ist. m wäre vorhanden, wenn auch an einer anderen Stelle.

Die Funktion strclspan: Die Position ermitteln, in der zum ersten Mal ein Zeichen aus der einen Zeichenkette in der anderen Zeichenkette enthalten

<?
$string_eins="Ekanin";
$string_zwei="Schmidt";
$treffer=strcspan($string_eins,$string_zwei);
print $treffer;
?>

An der 4 Position taucht zum erstenmal ein Zeichen auf, dass in der anderen Zeichenkette enthalten ist, nämlich i. Folglich ist $treffer i.

Die Funktion chop: Carriage return, tab, Leerzeichen am Ende einer Zeichenkette entfernen

Diese Funktion erscheint vordergründig unwichtig, tatsächlich ist sie insbesondere im Zusammenhang mit Flatfile Datenbanken ausgesprochen wichtig siehe Arbeiten mit Flatfile Datenbanken. Flatfile Datenbanken funktionnieren nur dann, wenn jede Zeile mit einem bestimmten Zeichen, in der Regel ist das das newline Zeichen \n, endet. Bei der konkreten Verarbeitung der entsprechenden Zeile, will man es aber meist nicht mehr haben, muss es also herausschneiden. Die Funktion chop ist nicht mit der gleichnamigen Perlfunktion zu verwechseln, den chop schneidet bei Perl jedes x-beliebige Zeichen am Ende eines Strings weg. chop entspricht der Perl Funktion chomp.

<?
$string="Hat Leerzeichen am Ende ";
print $string."/";
$string=chop($string);
print $string."/";
?>

Wie man sieht, hat $string nach chop keine Leerzeichen mehr am Ende. Der Slash folgt direkt auf die Zeichenkette.
Die gleiche Wirkung hat die Funktion rtrim.

<?
$string="Hat Leerzeichen am Ende ";
print $string."/";
$string=rtrim($string);
print $string."/";
?>

Die Funktion ltrim: Leerzeichen und newlines am Anfang einer Zeile entfernen

Weniger relevant für die Praxis, gibt es noch die Funktion ltrim. Sie entfernt Leerzeichen und newlines am Anfang einer Zeile.

<?
$string=" Hat Leerzeichen am Anfang";
print "/".$string;
$string=ltrim($string);
print "/".$string;
?>

Die Funktion trim: Überflüssige Zeichen am Anfang oder Ende entfernen

Mit der Funktion trim können überflüssige Zeichen sowohl am Ende als auch am Anfang eliminiert werden.

<?
$string=" Hat Leerzeichen am Anfang ";
print "/".$string."/";
$string=trim($string);
print "/".$string."/";
?>

Das Ergebnis sieht dann so aus:

/ Hat Leerzeichen am Anfang /
/Hat Leerzeichen am Anfang/

Die Funktion strlen: Ermitteln der Länge einer Zeichenkette


<?
$string="Wie lang ist eigentlich diese Zeichenkette";
$laenge=strlen($string);
print $laenge;
?>

Die Funktion count_chars: Ermitteln wie oft die einzelnen Zeichen in einer Zeichenkette vorkommen

Für linguistisch Interessierte, die schon immer mal wissen wollten, wie sich die Buchstaben im Deutschen verteilen, also wieviel Prozent eines Textes ein a und wieviel ein e etc. sind, gibt es die Funktion count_chars.

<?
$string="Ene mene meck und du bist weg";
$hash_Zeichen_wie_oft=count_chars($string);

foreach ($hash_Zeichen_wie_oft as $Zeichen=>$wie_oft)
{
print $Zeichen." ".chr($Zeichen)." $wie_oft<br>";
}
?>

Das Ergebnis zeigt die Gesamtheit aller möglichen Zeichen und wie oft sie vorkommen. Aus Platzgründen hier nur ein kleiner Ausschnitt.

105 i 1
106 j 0
107 k 1
108 l 0
109 m 2
110 n 3

In der Ascii Tabelle entspricht i dem Wert 105 und dieser taucht 1 Mal auf. n hat den Ascii Code 110 und taucht 3 mal auf etc. Die Funktion count_chars produziert also einen Hash, wobei das Zeichen im Ascii Code den Schlüssel darstellt und der Wert die Häufigkeit des Vorkommens ist. mit chr($Zeichen) können wir den Ascii Code in eine Buchstaben konvertieren. Es wäre also ein leichtes, eine Routine zu schreiben, die die statistische Verteilung der Buchstaben zurückgibt.

Die Funktionen ucfirt, ucwords, stroupper: Kleinbuchstaben in Großbuchstaben konvertieren

Mit ucfirst können wir den ersten Buchstaben einer Zeichenkette in einen Großbuchstaben umwandeln, mit ucword alle Wörter einer Zeichenkette und mit stroupper alle Buchstaben.

<?
$string="ich bin da";
$string=ucfirst($string);
print $string;
?>

Das Ergebnis ist "Ich bin da".

<?
$string="ich bin da";
$string=ucwords($string);
print $string;
?>

Das Ergebnis ist "Ich Bin Da".

<?
$string="ich bin da";
$string=strtoupper($string);
print $string;
?>

Das Ergebnis ist "ICH BIN DA".

Die Funktion strtlower: Großbuchstaben in Kleinbuchstaben umwandeln

<?
$string="ICH BIN DA";
$string=strtolower($string);
print $string;
?>

Das Ergebnis ist "ich bin da".

vorhergehendes Kapitel