2x bewertet

String: ersetzen, suchen uvm.

von Delite  |  18.02.2007 um 14:21 h
PHP Grundlagen
Typ: PHP Grundlagen
Stufe:Schwer
Ja, was ist ein String? Ganz einfach eine Zeichenkette. Jetzt gibt es viele Möglichkeiten etwas mit ihm zu machen. Hier ein paar:

<?php
    $string 
"Das ist ein String"// Unser String (Zeichenkette)
    
$laenge strlen($string); // Ermittelt die Länge des Strings
    // Hier: 18
    
$zurueck strrev($string); // Das dreht den String um
    // hier: gnirtS nie tsi saD
    
$klein strtolower($string); // Wandelt den String in
Klein-Buchstaben um:
    
// das ist ein string
    
$gross strtoupper($string); // Wandelt den String in
Groß-Buchstaben um:
    
// DAS IST EIN STRING
    
$erstesgross ucfirst($string); // Das erste Zeichen wird groß
geschrieben:
    
// Das ist..
    
$zeichengross ucwords($string); // Das erste Zeichen jedes Wortes
wird
    
// groß geschrieben: Das Ist Ein String
?>



Die Kommentare erklären alles, deswegen schreibe ich hierzu auch nicht mehr.

Dann gibt es noch andere Möglichkeiten.

Ersetzen
Man möchte einen Teil zu einem anderen ersetzen. Was man auch hier beim BBC brauch. Das geht so:


<?php
    $string 
"Das ist ein String";
    
$ersetzen strtr($string,"a","p"); // = Dps ist ein String
?>



Hier werden jetzt die a's durch p's ersetzt
Die Funktion heisst: strtr()
im ersten Parameter steht der zu ersetzende String, im 2. das was man ersetzen will und im 3. zu was man das ersetzt. Wirklich sehr hilfreich.

Suchen
So jetzt suchen wir einen Wert:


<?php
    $string 
"Das ist ein String";
    
$suchen strpos($string,"ist",1); // Hier: 4
    
echo "ist ist an ".$suchen.". Position"// ist ist an 4. Position
?>



Damit erhält man die Position des 1. Auftretens des Strings. In einem 3. Parameter kann man auch noch angeben ab welcher Position gesucht werden soll. Die 1. Position ist 0 und nicht 1!
Zum Beispiel wenn man eine E-Mail prüfen will ist es sehr nützlich:


<?php
    $email 
"sumsebiene@hotmail.de";
    if(
strpos($email,"@",1) > 0) {
        echo 
"Das ist eine E-Mail. Sie hat ein @";
    }
    else {
        echo 
"Das ist keine E-Mail.";
    }
?>



In diesem Fall wird ausgegeben "Das ist eine E-Mail. Sie hat ein @"

Strings in Array (Liste) umwandeln
Jetzt hat man vielleicht einen String und möchte dies als Liste machen. Vielleicht so:


<?php
    $string 
"Delite,Ramona,Hanna";
    
$liste explode(",",$string);
    echo 
"1. ".$liste[0];
?>



explode teilt unseren String. Hier wird immer geteilt wo das Komma ist. Das ist das erste Parameter und im 2 Parameter steht in welchem String, das passieren soll. $liste ist nun ein Array. Mehr zu den Arrays gibt es später. $liste[0] ist der 1. Teil in diesem Fall "Delite"
Man kann explode auch dafür nutzen um ein String-Vorkommen zu zählen. Dabei zählt man den Array. 1 bedeutet dabei aber, dass es 0 mal vorkommt. Hier ein Beispiel:


<?php
    $string 
"Ich suche das c";
    
$liste explode("c",$string);
    echo (
count($liste)-1)." mal kommt c vor!"// 3 mal kommt c vor!
?>




Teile Kopieren
Jetzt gibt es noch die Funktion substr() sie kann Teile ausgeben, wenn wir die Position angeben. Beispiel:


<?php
    $string 
"abcdefg";
    
$var1 substr($string,0,3); // Ergebnis: abc
    
$var2 substr($string,3); // Ergebnis: defg
    
$var3 substr($string,-2,2); // Ergebnis: fg
    
$var4 substr($string,-5,-2); // Ergebnis: cde
    
$var5 substr($string,-4); // Ergebnis: defg
?>



bei substr() ist der erste Parameter der String, aus dem etwas kopiert werden soll. Dann kommt ab welchem Zeichen kopiert werden soll. 0 ist das 1. Zeichen. Wenn man hinten anfangen will, macht man diese Angabe negativ. zB. -4.
Das 3. Parameter ist optional und gibt an wie lang das gezählte sein soll. Ist das 2. Parameter negativ so wird die Anzahl von hinten genommen. Wenn das 3. Parameter negativ ist, werden die Zeichen abgezogen von hinten, wie am Beispiel $var4 zu sehen ist.



2 Kommentare




wie schön dass man hier alles fürs studium findet Smilie denn zur zeit versteh ich in informatik php nur bahnhof
am 25.01.2008 um 16:25 Uhr


Lil E

Gibt es auch eine Funktion zum Zeichen zählen?

lg Lil E
am 26.03.2008 um 14:22 Uhr