So bearbeiten Sie Text in PHP mit diesen 9 Funktionen
Strings sind einer der grundlegenden Skalartypen in vielen Programmiersprachen, einschließlich PHP. Sie repräsentieren Textdaten, von einzelnen Zeichen bis zu ganzen Dokumenten.
Die einfachste Zeichenfolgenprogrammierung umfasst Einzelbyte-Text, der 256 verschiedene Zeichen darstellen kann. ASCII ist die häufigste Codierung. Die PHP-Kernsprache verfügt über viele nützliche Funktionen zum Bearbeiten solcher Zeichenfolgen.
So zeigen Sie den Inhalt eines Strings an
Wenn Sie in PHP programmiert haben, sind Sie wahrscheinlich auf Echo gestoßen , aber Sie werden möglicherweise nicht erkennen, dass es sich überhaupt nicht um eine Funktion handelt. Tatsächlich ist Echo ein Sprachkonstrukt. Selbst wenn Sie es mehr als eine echte Zeichenfolgenfunktion verwenden, können Sie es nicht immer anstelle einer Funktion verwenden.
Sie werden es fast immer so verwenden:
echo "Hello, world";
Aber Sie können es tatsächlich wie eine Funktion aufrufen:
echo("Hello, world");
Obwohl es so aussieht, ist dies eigentlich kein Funktionsaufruf. Beispielsweise können Sie einer Variablen ihren Rückgabewert nicht zuweisen:
$a = echo("Hello, world");
Parse error: syntax error, unexpected 'echo' (T_ECHO)
Eine andere Möglichkeit, den Wert einer Zeichenfolge auszugeben, ist die Verwendung von print. Auch dies ist keine echte Funktion, obwohl sie näher an einer als am Echo liegt. Wie Echo können Sie es ohne Klammern aufrufen:
print "Hello, world";
Im Gegensatz zu Echo wird jedoch ein Wert zurückgegeben, den Sie zuweisen können, obwohl dieser Wert immer 1 ist:
$a = print("Hello, world");
echo $a; // 1
1. Ausgabe eines Strings mit einer Real-Funktion
Die printf- Funktion ist eigentlich eine echte Funktion. Wie Echo und Print gibt es Zeichenfolgen aus, weist jedoch ein einzigartiges Verhalten auf, das dieselbe Funktion aus der c-Sprache widerspiegelt:
$username = "John";
$length = printf("Hello, %s", $username); // "Hello, John"
echo $length; // 11
Das erste Argument ist immer noch eine Zeichenfolge, die in doppelte Anführungszeichen eingeschlossen ist. Printf führt jedoch verschiedene Ersetzungen für Sonderzeichenfolgen innerhalb der Zeichenfolge durch. Diese Sequenzen beginnen mit einem Prozentzeichen wie dem obigen % s . In diesem speziellen Fall steht% s für eine Zeichenfolge und printf ersetzt sie durch das nächste Argument, das den Wert von $ username darstellt .
Die Funktion printf gibt einen nützlichen Wert zurück, die Länge der formatierten Zeichenfolge. Dies kann für Code nützlich sein, der die Länge nicht im Voraus kennt, wenn beispielsweise Variablen an printf übergeben werden. Mit diesem Rückgabewert können Sie bestimmen, wie viel physischen Speicherplatz die Zeichenfolge in einer Befehlszeile belegt.
2. Ermitteln der Länge eines Strings
Apropos Stringlänge: Die Standardmethode zum Bestimmen der Länge eines Strings ist die Strlen- Funktion. Diese Funktion ist sehr einfach: Sie verwendet ein einzelnes Zeichenfolgenargument und gibt die Anzahl der Bytes als Ganzzahl zurück. Wie bereits erwähnt, entspricht die Anzahl der Bytes für ASCII-Text der Anzahl der Zeichen:
$length = strlen("Hello, World");
echo $length; // 12
3. Teil eines Strings extrahieren
Eine sehr häufige Aufgabe beim Umgang mit Zeichenfolgen ist das Extrahieren eines Teils dieser Zeichenfolge. Es gibt verschiedene Möglichkeiten, dies zu tun, und die erste hier vorgestellte gibt die Position und Länge der erforderlichen Teilzeichenfolge an. Die substr- Funktion extrahiert einen festen Teil eines Strings gemäß diesen Parametern.
$greeting = substr("Hello, World", 0, 5);
echo $greeting; // "Hello"
Beachten Sie, dass PHP wie in den meisten Programmiersprachen Zeichenfolgenversätze von 0 zählt. PHP unterscheidet sich von einigen Sprachen darin, dass der zweite Parameter dieser Funktion die Länge der resultierenden Zeichenfolge ist.
Ein weiterer Unterschied besteht darin, dass PHP negative Werte für Offset und Länge unterstützt. Wenn der Offset negativ ist, wird das Ergebnis ab dem Ende der Zeichenfolge gezählt, nicht ab dem Anfang:
$greeting = substr("Hello, World", -5, 5);
echo $greeting; // "World"
Wenn die Länge negativ ist, bezieht sich dies auf die Anzahl der entfernten Zeichen und nicht auf die Anzahl der enthaltenen Zeichen:
$greeting = substr("Hello, World", 0, -6);
echo $greeting; // "Hello,"
4. Suchen innerhalb eines Strings
Ein wichtiger Teil der Textverarbeitung besteht darin, die Position einer Zeichenfolge in einer anderen zu ermitteln. In PHP können Sie dies mit der strpos- Funktion erreichen:
$pos = strpos("Hello, World", ",");
echo $pos; // 5
Sie können strpos in Verbindung mit substr verwenden , um eine allgemeinere Methode zum Extrahieren eines Teils eines Strings bereitzustellen:
$string = "Hello, World";
$pos = strpos($string, ",");
$first_part = substr($string, 0, $pos);
echo $first_part; // "Hello"
5. Konvertieren des Strings einer Zeichenfolge
Herkömmliche ASCII-Zeichenfolgen haben gut definierte Varianten in Groß- und Kleinbuchstaben. Die Großbuchstabenversion von a ist A. Die Kleinbuchstaben von Z sind z. Die Funktionen strtoupper und strtolower führen diese Konvertierungen durch. Sie tun dies für jedes Zeichen in einer ASCII-Zeichenfolge:
$original = "hello, WORLD";
$upper = strtoupper($original);
$lower = strtolower($original);
echo "$lower $upper"; // "hello, world HELLO, WORLD"
6. Leerzeichen entfernen
Manchmal erhalten Sie eine Zeichenfolge mit führenden oder nachfolgenden Leerzeichen: Leerzeichen, Tabulatoren oder Zeilenumbrüche. Dies ist oft unerwünscht, aber durch Trimmen kann es entfernt werden:
$trimmed = trim(" Hello, World ");
echo $trimmed; // "Hello, World"
7. Aufteilen eines Strings durch ein Trennzeichen
Die Explosionsfunktion klingt gefährlich, aber keine Sorge, sie verursacht keinen dauerhaften Schaden! Stattdessen wird eine Zeichenfolge in ein Array von Zeichenfolgen konvertiert, die durch eine andere Zeichenfolge getrennt sind – häufig ein Zeichen. Dies kann nützlich sein, wenn Sie beispielsweise einen Satz in separate Wörter aufteilen möchten.
$sentence = "The quick brown fox jumps over the lazy dog";
$words = explode(" ", $sentence);
Die Variable $ words ist jetzt ein Array, das einzelne Wörter enthält:
[ "The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog" ]
8. Aufteilen eines Strings in Teilzeichenfolgen fester Länge
Wie beim Explodieren zerlegt die Funktion str_split einen String in ein Array kleinerer Strings. Im Gegensatz zur Explosion werden die endgültigen Zeichenfolgen nicht durch ihren Inhalt, sondern durch ihre Länge bestimmt.
$parts = str_split("Hello, World", 6);
Das $ parts- Array enthält jetzt zwei Teilzeichenfolgen mit jeweils sechs Zeichen Länge:
[ "Hello,", " World" ]
9. Suchen und Ersetzen innerhalb einer Zeichenfolge
Mit str_replace können Sie eine einfache Such- und Ersetzungsoperation für eine Zeichenfolge ausführen . Es werden drei Argumente benötigt: eine Zeichenfolge zum Suchen, eine Ersatzzeichenfolge und eine ursprüngliche Zeichenfolge zum Suchen. Die Funktion gibt die neue Zeichenfolge zurück:
$result = str_replace("o", "OO", "Hello, World");
echo $result; // "HellOO, WOOrld"
PHP bietet viele nützliche Möglichkeiten, mit Text zu arbeiten
Da PHP häufig in der Webentwicklung verwendet wird, ist der Umgang mit Text eine häufige Aufgabe.
Die hier vorgestellten Funktionen gehören zu den nützlichsten für die Verarbeitung von Text mit PHP. In die Sprache selbst sind rund hundert Funktionen zur Handhabung von Zeichenfolgen integriert .
Denken Sie daran, dass die hier gezeigten Funktionen für ASCII-Zeichenfolgen und nicht für Unicode-Zeichenfolgen verwendet werden. PHP unterstützt auch Unicode und andere Multibyte-Zeichencodierungsschemata mit einem separaten Funktionssatz .