Parsen von PHP-Strings. Lesen einer Datei in PHP. Wir wählen die beste Option. Den Text zwischen $start und $end abrufen

Die Aufgabe, die notwendigen Informationen von einer Website eines Drittanbieters zu analysieren und zu verarbeiten, steht einem Webentwickler häufig und aus verschiedenen Gründen gegenüber: Auf diese Weise können Sie Ihr Projekt mit Inhalten füllen, einige Informationen dynamisch laden und so weiter.

In solchen Fällen steht der Programmierer vor der Frage: Welche von Dutzenden Bibliotheken soll er wählen? In diesem Artikel haben wir versucht, die beliebtesten Optionen zu berücksichtigen und die beste auszuwählen.

Reguläre Ausdrücke

Auch wenn einem als Erstes „normale“ in den Sinn kommen, sollten Sie sie nicht für echte Projekte verwenden.

Ja, mit einfache Aufgaben Reguläre Ausdrücke eignen sich am besten, aber ihre Verwendung wird deutlich schwieriger, wenn Sie einen großen und komplexen HTML-Code analysieren müssen, der darüber hinaus nicht immer einem bestimmten Muster entspricht und im Allgemeinen Syntaxfehler enthalten kann.

Anstatt Ihr „fertigzustellen“. regulären Ausdruck Für jede noch so kleine Codeänderung empfehlen wir die Verwendung der folgenden Tools – das ist einfacher, bequemer und zuverlässiger.

XPath und DOM

htmlSQL

Wenn Sie PHP nicht verwenden, können Sie sich diese kurze Liste ähnlicher Tools für andere Programmiersprachen ansehen.

Datum der Veröffentlichung: 01.03.2018

Grüße Freunde! 🙂

Ich denke, wenn nicht alle, dann sicherlich die meisten von Ihnen in der Praxis auf die Notwendigkeit gestoßen sind, Informationen aus TXT-Dateien auf der Ebene von Serverskripten zu lesen. Zumindest hatte ich mehrere solcher Fälle, von denen ich Ihnen heute den letzten erzählen werde.

Daran ist nichts Kompliziertes, aber manchmal werden einem angesichts der Fülle an Optionen, die serverseitige Sprachen bieten, große Augen gemacht. Wenn wir speziell über PHP sprechen, in dem ich gerade programmiere, dann können Sie mit seinen Funktionen den Inhalt von Dateien Zeile für Zeile oder vollständig in einen String oder in ein Array einlesen, und für die letztere Option gibt es mehrere weitere Möglichkeiten ... Das sind die Kuchen :)

Leider funktionieren diese Methoden bei Dateien unterschiedlicher Struktur unterschiedlich schnell, und in der offiziellen Dokumentation findet sich kein einziges Wort über ihre Geschwindigkeit. Dies kann nur in der Praxis beurteilt werden, indem alle möglichen Optionen durchgespielt werden.

Deshalb zeige ich Ihnen heute, wie verschiedene Funktionen zum Lesen von PHP-Dateien funktionieren, damit Sie wissen, woraus Sie wählen können, wenn Sie einen PHP-Dateiparser zur Lösung realer Probleme erstellen müssen. Außerdem erkläre ich Ihnen genau, wie Sie unter „Kampfbedingungen“ die richtige Wahl treffen.

Gehen! 🙂

Erstellen eines PHP-Dateiparsers – Ausgangsbedingungen

Bevor wir beginnen, ein paar Worte zu der Aufgabe, für die ich einen Dateiparser in PHP erstellt und dann aus den implementierten Optionen die optimale ausgewählt habe.

Ich hatte einmal ein Problem bei der Arbeit, bei dem die Datenbank die Telefonnummern der Benutzer im falschen Format speicherte. Natürlich habe ich den Fehler problemlos behoben.

Doch was tun mit falschen Informationen, die zu diesem Zeitpunkt bereits in der Datenbank gespeichert waren? Natürlich musste es durch das richtige ersetzt werden.

Dafür wurde mir gegeben Textdatei mit Benutzer-IDs und deren Telefonnummern, die in die Datenbank übertragen werden mussten.

Ich muss sagen, es ist ziemlich gewichtig geworden: 352 KB und 8223 Textzeilen, von denen jede die Benutzer-ID und seine Telefonnummer im Format enthielt Benutzer-ID:Telefonnummer.

Kurz gesagt, die gesamte Aufgabe bestand darin, die PHP-Datei zeilenweise zu lesen, indem die Kennung und die Telefonnummer aus der Zeile extrahiert wurden, und anschließend die anhand der ID gefundene Telefonnummer des Benutzers in der Datenbank zu aktualisieren.

Mein Projekt wurde auf dem PHP-Framework Yii implementiert, daher finden Sie in weiteren Codebeispielen Elemente seiner API, insbesondere für die Arbeit mit der Datenbank, also seien Sie nicht beunruhigt :)

Nach der Analyse der in der Sprache verfügbaren Konstruktionen sowie der nach und nach im Internet gesammelten Erfahrungen anderer Entwickler konnte ich 4 Methoden identifizieren, die ich Ihnen weiter demonstrieren werde.

Nun, dann erzähle ich Ihnen, nach welchen Kriterien und wie genau ich die beste Option unter ihnen ausgewählt habe. Und natürlich werde ich die Ergebnisse teilen :)

Dieser Artikel ist also ein ausgezeichnetes Geduldstraining :) Der Kern des Artikels besteht darin, das folgende Material im Detail zu studieren, bis hin zu den Ergebnissen, die Sie am Ende erwarten. Nebenbei können Sie übrigens auch Ihrer Fantasie freien Lauf lassen und sich genau vorstellen, wie die ideale Option gewählt wird.

Eine Datei in PHP Zeile für Zeile mit fgets() lesen

Als Ergebnis nahm mein PHP-Dateiparser, der diesen Algorithmus implementiert, die folgende Form an:

find("unique_id IN (:id1, :id2)", array(":id1" => strtolower($params), ":id2" => strtoupper($params))); if ($client) ( $client->phone = str_replace(array("\r", "\n"), "", $params); $client->save(); ) ) ) if (!feof ( $fh)) ( echo „Fehler: unerwarteter fgets()-Fehler\n“; ) fclose($fh); ) else echo „Überprüfen Sie den Dateinamen, die Datei existiert nicht!“; )

Ich werde meine Schrift ein wenig entziffern, falls jemand Schwierigkeiten hat, sie zu verstehen.

Ganz am Anfang die Variable $Dateiname Der Wert wird dem Namen der zu analysierenden Datei mit dem vollständigen Pfad dazu zugewiesen. Als nächstes prüft PHP, ob die Datei existiert und ob sie mithilfe von Funktionen lesbar ist Datei existiert() Und is_readable() jeweils.

Wenn alles in Ordnung ist, öffnen Sie die Datei mit der Funktion fopen(), die mit der PHP-Fehlerkontrollanweisung aufgerufen wird, um die Ausgabe von Fehlern zu deaktivieren, die von dieser Funktion generiert werden. Ich habe beschlossen, damit meine eigene Fehlermeldung anstelle der Standard-Fehlermeldung zu generieren.

Gelingt es uns, die Datei zu öffnen, durchlaufen wir alle Zeilen in einer Schleife, bis die Datei endet, und wenn die Zeile nicht leer ist, trennen wir sie mit der Funktion durch den Doppelpunkt explodieren().

Dann überprüfen wir, ob die Benutzer-ID und seine Telefonnummer nicht leer sind, suchen den Benutzer in der Datenbank anhand der ID und aktualisieren, falls vorhanden, seine Telefonnummer, indem wir zunächst den Bindestrich und die Zeilenumbruchzeichen aus dem Zahlenwert entfernen.

Nun, ich habe auch PHP-Funktionen verwendet strtolower() Und strtoupper() um die Existenz eines Benutzers in der Datenbank mit Identifikatoren zu überprüfen, die in verschiedenen Registern registriert werden könnten, weil in meinem Fall bestanden sie aus Symbolen und Zahlen.

PHP analysiert eine Datei mit file() in ein Array

Diese Methode zum Lesen einer Datei in PHP beinhaltet die Verwendung der Funktion Datei(), wodurch eine Datei geöffnet und deren Inhalt in ein Array eingefügt wird. In diesem Fall entsprechen die Elemente des Arrays genau den Zeilen der gelesenen Datei, was in meiner Situation perfekt ist.

Der Code für diese Version des PHP-Dateiparsers lautet wie folgt:

find("unique_id IN (:id, :id2)", array(":id" => strtolower($params), ":id2" => strtoupper($params))); if ($client) ( $client->phone = str_replace(array("\r", "\n"), "", $params); $client->

Wie Sie sehen, unterscheidet sich dies von der vorherigen Methode zum Lesen einer Datei in PHP nur am Anfang, wo die Datei geöffnet und sofort von der Funktion gelesen wird Datei() statt eines Haufens fopen() + fgets(), wie vorher.

PHP liest eine Datei mit fread() in eine Variable

Eine weitere PHP-Funktion zum Parsen einer Datei ist Angst(), mit dem Sie verschiedene Fragmente einer Datei einer bestimmten Länge lesen können. Um die gesamte Datei in PHP zu lesen, habe ich die mit der Funktion erhaltene Dateigröße als Fragmentgröße angegeben Dateigröße():

find("unique_id IN (:id1, :id2)", array(":id1" => strtolower($params), ":id2" => strtoupper($params))); if ($client) ( $client->phone = str_replace(array("\r", "\n"), "", $params); $client->save(); ) ) ) ) else echo " Prüfen der Dateiname, Datei existiert nicht!"; )

Diese Methode zum Lesen einer Datei mit PHP-Mitteln ist der vorherigen tatsächlich sehr ähnlich, da mit Hilfe von PHP Daten aus der Datei zunächst nicht in ein Array, sondern in eine String-Variable eingelesen werden Dann wird es immer noch in ein Array umgewandelt, weil Es ist einfacher, damit zu arbeiten als mit einer Schnur.

Der einfachste Weg, einen String in PHP in ein Array umzuwandeln, ist die Verwendung der bereits heute verwendeten Funktion „explosive()“, bei der das Anfangszeichen des Strings als Trennzeichen übergeben wird.

Erstellen eines PHP-Dateiparsers basierend auf file_get_contents()

Nun, und schließlich habe ich beschlossen, das Parsen von PHP-Dateien mithilfe der Funktion zu implementieren file_get_contents(), was genau dazu gedacht ist, die gesamte Datei in eine Zeile einzulesen, d.h. Funktioniert praktisch wie fread($fp, Dateigröße($Dateiname)).

Die einzige Ausnahme besteht darin, dass file_get_contents() selbst die Datei öffnet und liest, während Sie für die Verwendung von fread() zunächst die Datei über fopen() öffnen und ihren Zeiger zur weiteren Verwendung abrufen mussten.

Im Allgemeinen ist der auf file_get_contents() basierende PHP-Dateiparser-Code fast derselbe wie im vorherigen Fall:

find("unique_id IN (:id1, :id2)", array(":id1" => strtolower($params), ":id2" => strtoupper($params))); if ($client) ( $client->phone = str_replace(array("\r", "\n"), "", $params); $client->save(); ) ) ) ) else echo " Prüfen der Dateiname, Datei existiert nicht!"; )

Das ist alles. Es ist an der Zeit, die Leistung aller aufgelisteten Optionen zusammenzufassen und herauszufinden, welcher PHP-Dateiparser sich für die weitere Verwendung als der optimalste erwiesen hat.

Was ist der beste Weg, Dateien in PHP zu verarbeiten?

Aus den gefundenen Optionen die optimalste auswählen, d.h. Am schnellsten entschied ich mich, jeweils zu ermitteln. Dazu habe ich die im Artikel unter dem Link beschriebene Technik verwendet.

Die Funktionen zum Lesen von PHP-Dateien selbst sind recht schnell. Um zumindest einige mehr oder weniger greifbare Zahlen für ihre Betriebszeit zu erhalten, habe ich Datenbankoperationen bewusst in den getesteten Fragmenten belassen, die in allen Fällen gleich waren.

Der Einfachheit halber habe ich mich außerdem entschieden, die Laufzeit des PHP-Skripts auf die dritte Dezimalstelle zu runden, d. h. bis zu Tausendstelsekunden (obwohl es tatsächlich auf Hundertstelsekunden hätte beschränkt werden können).

Ich erinnere mich, als ich in der Schule meine wissenschaftliche Arbeit in Physik schrieb (ja, ich hatte so ein Erlebnis :), während deren Verteidigung vor Universitätslehrern mir ständig vorgeworfen wurde, dass ich nicht genug Experimente hatte (ich habe für jeden Fall 3 Experimente gemacht). ). Die „Koryphäen der Wissenschaft“ nannten Zahlen von 100 oder mindestens 10 Experimente, um verschiedene Situationen zu vergleichen, um eine Art Vergleich anzustellen und die Wahrscheinlichkeit zu minimieren, dass eines dem anderen versehentlich überlegen ist.

Ja, ich habe es damals schwer gehabt, aber ich habe ihre Empfehlungen so gut gelernt, dass ich mich noch heute daran erinnere, obwohl seitdem mehr als 10 Jahre vergangen sind. Darüber hinaus basierten diese Empfehlungen tatsächlich auf den Gesetzen der mathematischen Statistik und der Wahrscheinlichkeitstheorie.

Nun, in diesem Artikel behaupte ich nicht, dass meine aktuellen Experimente wissenschaftlicher Natur sind, daher halte ich die Anzahl von 100 Experimenten für zu groß und den Prozess ihrer Durchführung für zu langwierig.

Daher beschloss ich, mich auf 10 Experimente für jede Version des PHP-Dateiparsers zu beschränken, was, wie sich am Ende herausstellte, völlig ausreichte, um einen klaren Anführer zu identifizieren, ohne dass Fakten und Hinweise in Hundertstel und Tausendstel manipuliert wurden einer Sekunde der Überlegenheit.

Die Ergebnisse der Berechnungen der Betriebszeit der von mir entwickelten PHP-Dateiparser sind in der folgenden Tabelle dargestellt und nach den PHP-Funktionen sortiert, mit denen sie arbeiten.

Experiment fgets() Datei() Angst() file_get_contents()
1 9,147 9,722 10,539 2,008
2 8,950 9,006 9,495 1,733
3 8,821 8,845 9,207 1,642
4 8,717 8,876 8,931 1,758
5 9,010 9,091 8,703 1,635
6 9,110 8,640 9,712 1,633
7 9,074 9,626 9,13 1,645
8 8,886 9,204 9,048 1,701
9 8,667 8,918 9,438 1,713
10 8,852 9,197 9,537 1,567
Durchschnitt 8,923 9,113 9,374 1,704

Wie Sie sehen können, habe ich zusätzlich zu den Skriptausführungszeiten in jedem der 10 Experimente beschlossen, die Durchschnittstemperatur im Krankenhaus zu berechnen :)

Nämlich die arithmetische durchschnittliche Betriebszeit jedes PHP-Dateiparsers, damit der Spitzenreiter identifiziert werden kann.

Und es stellte sich heraus, dass es sich, wie Sie sehen können, um die letzte Option handelte, die basierend auf der Funktion implementiert wurde file_get_contents(), der den Inhalt der Datei in eine String-Variable liest, ihn dann in ein Array umwandelt und in einer Schleife verarbeitet.

Alle anderen Versionen von PHP-Dateiparsern arbeiten ungefähr mit der gleichen Geschwindigkeit.

Warum genau er seine Konkurrenten überholt hat, weiß ich ehrlich gesagt nicht im Geringsten. Ich kann nur davon ausgehen, dass der Vorgang des Einlesens einer Datei in einen String verwendet wird file_get_contents() erfordert weniger Ressourcen als das Generieren eines vorgefertigten String-Arrays mit Datei().

Und die Überlegenheit gegenüber fgets() und fread() lässt sich auf die Tatsache zurückführen, dass man vor ihrer Verwendung die Datei mit fopen() öffnen muss, was Zeit braucht.

Ja, eigentlich spielt es keine Rolle, denn... Die Zahlen sprechen für sich: Dank der Nutzung der Funktion file_get_contents() Der darauf basierende PHP-Dateiparser arbeitet fünfmal schneller als andere, was meine Entscheidung, ihn in der Praxis einzusetzen, beeinflusst hat.

Parsen einer Datei in PHP – Schlussfolgerungen

Wie ich bereits zu Beginn sagte, sind meine Experimente nicht fehlerfrei und es lohnt sich nicht, sich allein auf die dabei erzielten Ergebnisse zu verlassen, denn trotz der Geschwindigkeit file_get_contents() In meiner Situation gibt es Zeiten, in denen es viel bequemer und effizienter ist, die anderen von mir angegebenen PHP-Dateiparser zu verwenden.

Vergessen Sie außerdem nicht, dass PHP selbst eine synchrone Programmiersprache ist, d.h. Alle Servervorgänge erfolgen nacheinander, ohne dass ihre parallele Ausführung konfiguriert werden kann, auch auf verschiedenen Kernen des Serverprozessors.

Folglich kann die Ausführungszeit von in PHP-Code geschriebenen Operationen durch eine Reihe von Faktoren beeinflusst werden, von denen der wichtigste die Kernel-Auslastung zum Zeitpunkt der Ausführung der PHP-Anwendung ist.

Ich habe dies besonders bei Experimenten gespürt, als derselbe PHP-Dateiparser in 9, dann in 12 und dann noch einmal in 9 Sekunden in drei aufeinanderfolgenden Iterationen funktionierte, aufgrund des banalen Starts von Windows Explorer im zweiten Fall, was natürlich auch der Fall war erfordert Serverressourcen.

Unter Berücksichtigung dieser Funktionen habe ich Experimente fast gleichzeitig und nacheinander mit denselben Programmen durchgeführt, um keine Ressourcen der Serverhardware zu verschwenden.

Gehen Sie daher in Zukunft bei der Durchführung ähnlicher Experimente mit PHP-Konstrukten genauso vor, denn Dies ist tatsächlich die einzige Möglichkeit, Experimente auf Augenhöhe zu bringen.

Wenn Sie mit asynchronen serverseitigen Sprachen (C#, Java) oder Technologien (z. B. Node.js) arbeiten, erstellen Sie für Experimente nach Möglichkeit einen separaten Thread, der auf einem dedizierten Prozessorkern ausgeführt wird.

Nun, wenn Sie keinen völlig ungenutzten Kern finden (was angesichts des Niveaus moderner Software nicht verwunderlich ist), dann können Sie zumindest den am wenigsten belasteten Kern finden oder zumindest einen mit einer statischen Belastung, die sich im Laufe der Zeit nicht ändert .

Zusammenfassend möchte ich sagen, dass die im Artikel vorgestellten Codefragmente nicht nur zum Parsen von Textdateien in PHP verwendet werden können, sondern auch perfekt für andere Formate geeignet sind, beispielsweise zum Parsen von CSV-Dateien.

Schreiben Sie Ihr Feedback, sowohl positiv als auch negativ, in die Kommentare unter dem Artikel – ich benötige Ihre Meinung für die weitere Entwicklung :)

Wir sehen uns wieder! 🙂

P.S.: Wenn Sie eine Website benötigen oder Änderungen an einer bestehenden vornehmen müssen, aber keine Zeit oder Lust dafür haben, kann ich meine Dienste anbieten.

Mehr als 5 Jahre Erfahrung professionelle Website-Entwicklung. Arbeiten mit PHP, OpenCart, WordPress, Laravel, Yii, MySQL, PostgreSQL, JavaScript, Reagieren, Eckig und andere Webentwicklungstechnologien.

Erfahrung in der Entwicklung von Projekten auf verschiedenen Ebenen: Startseiten, Unternehmenswebsites, Online-Shops, CRM, Portale. Inklusive Support und Entwicklung HighLoad-Projekte. Senden Sie Ihre Bewerbungen per E-Mail [email protected].

Fügt vor jedem Zeilenvorschub einen HTML-Zeilenumbruchcode ein

  • number_format – Formatiert eine Zahl mit Gruppentrennung
  • ord – Gibt den ASCII-Code eines Zeichens zurück
  • parse_str – Analysiert einen String in Variablen
  • print – Druckt eine Zeichenfolge
  • printf
  • quoted_printable_decode – Dekodiert eine Zeichenfolge, die von der zitierten druckbaren Methode codiert wurde
  • quotemeta – Entgeht Sonderzeichen
  • rtrim – Entfernt Leerzeichen vom Ende einer Zeichenfolge
  • sha1 – Gibt den SHA1-Hash einer Zeichenfolge zurück
  • sha1_file – Gibt den SHA1-Hash einer Datei zurück
  • ähnlicher_text – Berechnet den Grad der Ähnlichkeit zweier Zeichenfolgen
  • soundex – Gibt den Soundex-Schlüssel für eine Zeichenfolge zurück
  • sprintf
  • sscanf – Analysiert eine Zeichenfolge gemäß einem bestimmten Format
  • strcasecmp – String-Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung, der binärsicher ist
  • strcmp – Binärsicherer String-Vergleich
  • strcoll – Strings basierend auf dem aktuellen Gebietsschema vergleichen
  • strcspn – Gibt die Länge des Teils am Anfang der Zeichenfolge zurück, der nicht mit der Maske übereinstimmt
  • stripcslashes – Entfernt Zeichen-Escapezeichen, die durch die Funktion addcslashes() erzeugt werden
  • Stripos – Gibt die Position des ersten Vorkommens einer Teilzeichenfolge zurück, ohne Berücksichtigung der Groß- und Kleinschreibung
  • stripeslashes – Entfernt Zeichen-Escapezeichen, die durch addslashes() erzeugt werden
  • strip_tags – Entfernt HTML- und PHP-Tags aus einer Zeichenfolge
  • stristr – Ähnlich der strstr-Funktion, jedoch unabhängig von der Groß- und Kleinschreibung
  • strlen – Gibt die Länge einer Zeichenfolge zurück
  • strnatcasecmp – Vergleichen Sie Zeichenfolgen ohne Berücksichtigung der Groß-/Kleinschreibung mithilfe eines Algorithmus
  • strnatcmp – Vergleichen von Zeichenfolgen mithilfe des Algorithmus „natürliche Reihenfolge“.
  • strncasecmp
  • strncmp – Vergleich der ersten n Zeichen von Zeichenfolgen ohne Berücksichtigung der Groß- und Kleinschreibung
  • strpos – Findet das erste Vorkommen eines Teilstrings in einem String
  • strhrchr
  • strrev – Kehrt einen String um
  • strripos – Gibt die Position des letzten Vorkommens einer Teilzeichenfolge zurück, ohne Berücksichtigung der Groß- und Kleinschreibung
  • strrpos – Findet das letzte Vorkommen eines Zeichens in einer Zeichenfolge
  • strspn – Gibt die Länge des Teils am Anfang der Zeichenfolge zurück, die der Maske entspricht
  • strstr – Findet das erste Vorkommen einer Teilzeichenfolge
  • strtok – Teilt einen String
  • strtolower – Konvertiert eine Zeichenfolge in Kleinbuchstaben
  • strtoupper – Konvertiert einen String in Großbuchstaben
  • strtr – Konvertiert angegebene Zeichen
  • str_ireplace – Eine Variante der Funktion str_replace(), bei der die Groß-/Kleinschreibung nicht beachtet wird.
  • str_pad – Füllt einen String mit einem anderen String auf eine bestimmte Länge auf
  • str_repeat – Gibt eine sich wiederholende Zeichenfolge zurück
  • str_replace – Ersetzt die Suchzeichenfolge durch die Ersatzzeichenfolge
  • str_rot13 – Führt eine ROT13-Transformation für einen String durch
  • str_shuffle – Mischt Zeichen in einer Zeichenfolge
  • str_split – Konvertiert einen String in ein Array
  • str_word_count – Gibt Informationen über die Wörter in einer Zeichenfolge zurück
  • substr – Funktion gibt einen Teil einer Zeichenfolge zurück
  • substr_count – Zählt die Anzahl der Vorkommen eines Teilstrings in einem String
  • substr_replace – Ersetzt einen Teil einer Zeichenfolge
  • trim – Entfernt Leerzeichen vom Anfang und Ende einer Zeichenfolge
  • ucfirst – Konvertiert das erste Zeichen einer Zeichenfolge in Großbuchstaben
  • ucwords – Wandelt das erste Zeichen jedes Wortes in einer Zeichenfolge in Großbuchstaben um
  • vprintf – Druckt eine formatierte Zeichenfolge
  • vsprintf – Gibt eine formatierte Zeichenfolge zurück
  • Wortumbruch – Umbricht eine Zeile für eine bestimmte Anzahl von Zeichen mithilfe eines Zeilenumbruchzeichens
  • Merkmale von Vergleichsoperatoren, die auf Zeichenfolgen angewendet werden.

    $eins = 1; // Nummer Eins. $null = 0; // Weisen Sie die Zahl Null zu. if ($one == "") echo 1; // Offensichtlich nicht gleich – gibt nicht 1 aus. if ($zero == "") echo 2; //* Aufmerksamkeit! Entgegen den Erwartungen druckt es 2! if ("" == $null) echo 3; //* Und das hilft auch nicht – es wird gedruckt!.. if ("$zero" == "") echo 4; // So ist es richtig. if (strval($zero) == "") echo 5; // Das ist auch richtig – es wird nicht 5 ausgegeben. if ($zero === "") echo 6; // Beste Möglichkeit, funktioniert aber nicht in PHP 3.

    hacken()

    Die Funktion crush() gibt eine Zeichenfolge zurück, nachdem nachgestellte Leerzeichen und Zeilenumbrüche entfernt wurden. Die Syntax der Funktion crush() lautet:

    String Chop (String String)

    Im folgenden Beispiel entfernt die Funktion crush() zusätzliche Zeilenumbrüche:

    $header = "Inhaltsverzeichnis\n\n"; $header = hacken($header); // $header = "Inhaltsverzeichnis"

    str_pad()

    Die Funktion str_pad() füllt einen String bis zu einer bestimmten Länge mit den angegebenen Zeichen auf und gibt den formatierten String zurück. Syntax der Funktion str_pad():

    string str_pad (string string, int pad_length [, string pad [, int pad_type]])

    Wenn der optionale Padding-Parameter nicht angegeben ist, wird die Zeichenfolge mit Leerzeichen aufgefüllt. Andernfalls wird die Zeichenfolge mit den angegebenen Zeichen aufgefüllt. Standardmäßig ist die Zeile rechts aufgefüllt; Sie können jedoch den padding_type-Parameter STR_PAD_RIGHT, STR_PAD_LEFT oder STR_PAD_BOTH übergeben, der die Zeile in der angegebenen Richtung auffüllt. Das Beispiel demonstriert das Auffüllen von Zeichenfolgen mit der Funktion str_pad() mit Standardparametern:

    $food = "Salat"; print str_pad ($food, 5): // Druckt die Zeichenfolge „salad“ Das folgende Beispiel verwendet die optionalen Parameter der Funktion str_pad(): $header = „Table of Contents“; print str_pad ($header, 5, „= +=+=" , STR_PAD_BOTH); // Der Browser zeigt die Zeile =+=+= Table of Contents=+=+=" an

    trimmen()

    Die Funktion trim() entfernt alle Leerzeichen an beiden Enden einer Zeichenfolge und gibt die resultierende Zeichenfolge zurück. Syntax der Trim()-Funktion:

    Saitentrimm (Saitenland)

    Die Sonderzeichen \n, \r, \t, \v und \0 sind ebenfalls im entfernten Leerzeichen enthalten.

    ltrim()

    Die Funktion lrim() entfernt alle Leerzeichen und Sonderzeichen vom linken Rand einer Zeichenfolge und gibt die resultierende Zeichenfolge zurück. Syntax der Funktion ltrim():

    string ltrim (string string)

    Die Funktion entfernt dieselben Sonderzeichen wie die Funktion trim().

    strlen()

    Bestimmen der Saitenlänge

    Die Länge einer Zeichenfolge in Zeichen kann mit der Funktion strlen() ermittelt werden. Syntax der Funktion strlen():

    int strlen (string string)

    Das folgende Beispiel zeigt, wie Sie die Länge einer Zeichenfolge mithilfe der Funktion strlen() ermitteln:

    $string = "Hallo"; $length = strlen($string); // $length = 5

    Vergleich zweier Strings

    Der Vergleich zweier Strings ist eine der wichtigsten String-Operationen in jeder Sprache. Obwohl dieses Problem auf verschiedene Arten gelöst werden kann, gibt es in PHP vier String-Vergleichsfunktionen:

    strcmp()

    Die Funktion strcmp() vergleicht zwei Zeichenfolgen unter Berücksichtigung der Groß- und Kleinschreibung. Syntax der Funktion strcmp(): int strcmp (string string1, string string2)

    Sobald der Vergleich abgeschlossen ist, gibt strcmp() einen von drei möglichen Werten zurück:

    • 0, wenn Zeile1 und Zeile2 gleich sind;
    • < 0, если строка1 меньше, чем строка2;
    • > 0, wenn string2 kleiner als string1 ist.

    $sthng1 = "Butter"; $string2 = "Butter"; if ((strcmp($string1. $string2)) == 0) : print "Strings sind äquivalent!"; endif; // Der if-Befehl gibt TRUE zurück

    strcasecmp()

    Die Funktion strcasecmp() funktioniert genauso wie strcmp(), mit einer Ausnahme: Der Vergleich berücksichtigt nicht die Groß-/Kleinschreibung von Zeichen. Die Syntax der Funktion strcasecmp() lautet:

    int strcasecmp (string string1, string string2)

    Der folgende Codeausschnitt vergleicht zwei identische Zeichenfolgen:

    $string1 = "Butter"; $string2 = "Butter"; if ((strcmp($string1, $string2)) == 0) : print "Strings sind äquivalent!"; endif; // Der if-Befehl gibt TRUE zurück

    strspn()

    Die Funktion strspn() gibt die Länge des ersten Segments von string1 zurück, das die in string2 vorhandenen Zeichen enthält. Die Syntax der Funktion strspn() lautet:

    int strspn (string string1, string string2)

    Der folgende Ausschnitt zeigt, wie die Funktion strspn() zum Überprüfen eines Passworts verwendet wird:

    $password = "12345"; if (strspn($password, "1234567890") != strlen($password)): print "Passwort darf nicht nur aus Zahlen bestehen!"; endif:

    strcspn()

    Die Funktion strcspn() gibt die Länge des ersten Segments von string1 zurück, das Zeichen enthält, die in string2 nicht vorhanden sind. Syntax der Funktion strcspn():

    int strcspn (string string1, string string2)

    Das folgende Snippet verwendet die Funktion strcspn(), um das Passwort zu überprüfen:

    $password = "12345"; if (strcspn($password, "1234567890") == 0) : print "Passwort darf nicht nur aus Zahlen bestehen!"; endif;

    Verarbeiten von Zeichenfolgendaten ohne Verwendung regulärer Ausdrücke

    Bei der Verarbeitung großer Informationsmengen verlangsamen reguläre Ausdrucksfunktionen die Programmausführung erheblich. Diese Funktionen sollten nur bei der Verarbeitung relativ komplexer Zeichenfolgen verwendet werden, bei denen reguläre Ausdrücke wirklich erforderlich sind. Wenn die Textanalyse nach relativ einfachen Regeln durchgeführt wird, können Sie Standard-PHP-Funktionen verwenden, die die Verarbeitung erheblich beschleunigen. Alle diese Funktionen werden im Folgenden beschrieben.

    strtok()

    Die Funktion strtok() teilt eine Zeichenfolge mithilfe der im zweiten Parameter angegebenen Trennzeichen in Token auf. Die Syntax der Funktion strtok() lautet:

    string strtok (String string, String-Trennzeichen)

    Die Funktion strtok() hat eine Merkwürdigkeit: Um einen String vollständig aufzuteilen, muss die Funktion mehrmals hintereinander aufgerufen werden. Beim nächsten Aufruf der Funktion extrahiert sie das nächste Token aus der Zeichenfolge. In diesem Fall wird der String-Parameter nur einmal angegeben – die Funktion verfolgt die aktuelle Position im String, bis der String vollständig in Tokens analysiert ist oder ein neuer String-Parameter angegeben wird. Das folgende Beispiel veranschaulicht das Aufteilen einer Zeichenfolge mithilfe mehrerer Trennzeichen:

    $info = "WJ Gi1more: [email protected]| Columbus, Ohio"; // Trennzeichen - Doppelpunkt (:), vertikaler Strich (|) und Komma (.) $tokens = ":|,"; $tokenized = strtok($info, $tokens); // Array-Elemente drucken $tokenized while ($tokenized) : echo „Element = $tokenized
    "; // Bitte beachten Sie, dass nachfolgende Aufrufe von strtok // das erste Argument nicht übergeben $tokenized = strtok($tokens); endwhile; Ergebnis: Element = WJGilmore Element = [email protected] Element = Columbus Element = Ohio

    parse_str()

    Die Funktion parse_str() analysiert Paare in einer Zeichenfolge und weist Variablen im aktuellen Bereich Werte zu. Syntax der Funktion parse_str():

    void parse_str (Zeichenfolge Zeichenfolge)

    Die Funktion parse_str() ist besonders nützlich beim Parsen von URLs, die HTML-Formulardaten oder andere umfangreiche Informationen enthalten. Im folgenden Beispiel werden Informationen analysiert, die über eine URL übergeben werden. Eine Zeichenfolge ist eine Standardmethode zum Übertragen von Daten zwischen Seiten, die entweder zu einem Hyperlink kompiliert oder in ein HTML-Formular eingegeben wird:

    $url = "fname=wj&lname=gilmore&zip=43210"; parse_str($url); // Nachdem parse_str() ausgeführt wurde, sind die folgenden Variablen verfügbar: // $fname = "wj": // $lname = "gilmore"; // $zip = "43210"

    Da diese Funktion für die Arbeit mit URLs entwickelt wurde, ignoriert sie das kaufmännische Und-Zeichen (&).

    explodieren()

    Die Funktion explosion() teilt einen String in Elemente auf und gibt diese Elemente als Array zurück. Syntax der Explode()-Funktion:

    Array-Explosion (String-Trennzeichen, String-String [, int-Schwellenwert])

    Die Aufteilung erfolgt bei jeder Instanz des Trennzeichens und die Anzahl der resultierenden Fragmente kann durch den optionalen Schwellenwertparameter begrenzt werden.

    Die Funktion explosion() demonstriert das Teilen einer Zeichenfolge im folgenden Beispiel:

    $info = "Wilson | Baseball | Indianer"; $user = explosion("|", $info); // $user = "wilson"; // $user = "Baseball"; // $user = "Indianer";

    Die Funktion „explosive()“ ist nahezu identisch mit der oben beschriebenen POSIX-Funktion „split()“ für reguläre Ausdrücke. Der Hauptunterschied besteht darin, dass die Übergabe regulärer Ausdrücke als Parameter nur beim Aufruf von split() zulässig ist.

    implodieren()

    Wenn die Funktion „explode()“ einen String in Array-Elemente aufteilt, führt ihr Gegenstück, die Funktion „implode()“, das Array zu einem String zusammen. Syntax der Implode()-Funktion:

    String implodieren (String-Trennzeichen, Array-Fragmente)

    Das Bilden eines Strings aus einem Array wird im folgenden Beispiel demonstriert:

    $ohio_cities = array("Columbus", "Youngstown", "Cleveland", "Cincinnati"); $city_string = implode("l", $ohio_cities); // $city_string = "Columbus | Youngstown | Cleveland | Cincinnati";

    implode() hat einen Alias, die Funktion join().

    strpos()

    Die Funktion strpos() findet die erste Instanz eines bestimmten Teilstrings in einem String. Syntax der Funktion strpos():

    int strpos (string string, string substring [, int offset])

    Der optionale Offset-Parameter gibt die Position an, an der die Suche beginnen soll. Wenn die Teilzeichenfolge nicht gefunden wird, gibt strpos() FALSE (0) zurück.

    Das folgende Beispiel ermittelt die Position des ersten Vorkommens eines Datums in der Protokolldatei:

    $log = "206.169.23.11:/www/:2000-08-10 206.169.23.11:/www/logs/:2000-02-04 206.169.23.11:/www/img/:1999-01-31"; // An welcher Stelle in der Zeitschrift erscheint das Jahr 1999 erstmals? $pos = strpos($log, "1999"); // $pos = 95. weil sich die erste Instanz von „1999“ // an Position 95 der Zeile befindet, die in der Variablen $log enthalten ist

    strpos()

    Die Funktion strrpos() findet die letzte Instanz eines bestimmten Zeichens in einer Zeichenfolge. Die Syntax der Funktion strrpos() lautet:

    int strpos (String string, char-Zeichen)

    In Bezug auf die Fähigkeiten ist diese Funktion ihrem Gegenstück – der Funktion strpos() – unterlegen, da Sie damit nur nach einem einzelnen Zeichen und nicht nach der gesamten Zeichenfolge suchen können. Wenn als zweiter Parameter an strrpos() ein String übergeben wird, wird bei der Suche nur dessen erstes Zeichen verwendet.

    str_replace()

    Die Funktion str_replace() durchsucht einen String nach allen Vorkommen eines bestimmten Teilstrings und ersetzt diese durch einen neuen Teilstring. Syntax der Funktion str_replace():

    string str_replace (String-Teilstring, String-Ersetzung, String-String)

    Mit der Funktion substr_replace(), die später in diesem Abschnitt beschrieben wird, können Sie nur einen bestimmten Teil einer Zeichenfolge ersetzen. Im Folgenden wird gezeigt, wie die Funktion str_replace() verwendet wird, um eine globale Ersetzung für eine Zeichenfolge durchzuführen.

    Wenn die Teilzeichenfolge nie in der Zeichenfolge vorkommt, bleibt die ursprüngliche Zeichenfolge unverändert:

    $favorite_food = „Meine Lieblingsspeisen sind Eis und Chicken Wings“; $favorite_food = str_replace("chicken_wings", "pizza", $favohte_food); // $favorite_food = „Meine Lieblingsspeisen sind Eis und Pizza“

    strstr()

    Die Funktion strstr() gibt den Teil einer Zeichenfolge zurück, der mit dem ersten Vorkommen einer bestimmten Teilzeichenfolge beginnt. Syntax der Funktion strstr():

    string strstr (String string, string substring)

    Im folgenden Beispiel wird die Funktion strstr() verwendet, um einen Domänennamen aus einer URL zu extrahieren:

    $url = "http://www.apress.com"; $domain - strstr($url, "."); // $domain = ".apress.com"

    substr()

    Die Funktion substr() gibt den Teil einer Zeichenfolge zurück, der an einer bestimmten Startposition beginnt und eine bestimmte Länge hat. Syntax der Substr()-Funktion:

    string substr (string string, int start [, int length])

    Wenn der optionale Längenparameter nicht angegeben ist, wird davon ausgegangen, dass die Teilzeichenfolge an der angegebenen Startposition beginnt und bis zum Ende der Zeichenfolge fortgesetzt wird. Bei der Verwendung dieser Funktion sind vier Dinge zu beachten:

    • Wenn der Startparameter positiv ist, beginnt die zurückgegebene Teilzeichenfolge an der Position der Zeile mit der angegebenen Nummer.
    • Wenn der Startparameter negativ ist, beginnt der zurückgegebene Teilstring an der Position (Stringlänge – Start);
    • Wenn die Länge positiv ist, enthält die zurückgegebene Teilzeichenfolge alle Zeichen von Anfang bis Anfang+Länge. Wenn der letzte Wert die Länge des Strings überschreitet, werden Zeichen bis zum Ende des Strings zurückgegeben;
    • Wenn die Länge negativ ist, endet die zurückgegebene Teilzeichenfolge im angegebenen Abstand vom Ende der Zeichenfolge.

    Denken Sie daran, dass der Startparameter den Versatz vom ersten Zeichen der Zeile angibt; Die zurückgegebene Zeichenfolge beginnt also tatsächlich bei der Zeichennummer (Start + 1).

    Das folgende Beispiel demonstriert substr() substring substring:

    $car = „1944 Ford“; Smodel = substr($car, 6); // Smodel = "Ford"

    Beispiel mit positivem Längenparameter:

    $car = „1944 Ford“; $model = substr($car, 0, 4); // $model = "1944" Beispiel mit einem negativen Längenparameter: $car = "1944 Ford"; $model = substr($car, 2, -5); // $model = "44"

    substr_count()

    Die Funktion substr_count() gibt die Anzahl der Vorkommen eines Teilstrings in einem bestimmten String zurück. Die Syntax der Funktion substr_count() lautet: int substr_count (string string, string substring) Im folgenden Beispiel zählt die Funktion substr_count() die Anzahl der Vorkommen des Teilstrings ain: $tng_twist = "Der Regen fällt hauptsächlich auf die Ebenen aus Spanien"; $count = substr_count($tng_twist, "ain"); // $count = 4

    substr_replace()

    Die Funktion substr_replace() ersetzt den Teil einer Zeichenfolge, der an einer bestimmten Position beginnt. Bei Angabe des optionalen Längenparameters wird ein Fragment der angegebenen Länge ersetzt; andernfalls wird die Ersetzung entlang der gesamten Länge der Ersetzungszeichenfolge durchgeführt. Die Syntax der Funktion substr_replace() lautet:

    string substr_replace (string string, string replacement, int start [, int length])

    Die Start- und Längenparameter werden nach bestimmten Regeln eingestellt:

    • Wenn der Startparameter positiv ist, beginnt die Ersetzung an der angegebenen Position.
    • Wenn der Startparameter negativ ist, beginnt die Ersetzung an der Position (Stringlänge -Start);
    • wenn der Längenparameter positiv ist, wird ein Fragment der angegebenen Länge ersetzt;
    • Wenn die Länge negativ ist, endet die Ersetzung an der Position (Stringlänge – Länge).

    Die einfache Textersetzung mit substr_replace() wird im folgenden Beispiel demonstriert:

    $favs = " "s favorite links"; $name = "Alessia"; // Parameter „0, 0“ bedeuten, dass das zu ersetzende Fragment // an der ersten Position der Zeile beginnt und endet. $favs - substr_replace( $favs, $name , 0, 0); $favs drucken:

    Ergebnis:

    Alessias Lieblingslinks

    Konvertieren von Zeichenfolgen und Dateien in das HTML-Format und umgekehrt

    Das Konvertieren einer Zeichenfolge oder einer gesamten Datei in ein für die Anzeige in einem Webbrowser geeignetes Format (oder umgekehrt) ist einfacher, als es auf den ersten Blick erscheinen mag. PHP verfügt hierfür über spezielle Funktionen.

    Text in HTML konvertieren

    Das schnelle Konvertieren von reinem Text in das Webbrowser-Format ist eine sehr häufige Aufgabe. Die in diesem Abschnitt beschriebenen Funktionen helfen Ihnen bei der Lösung.

    nl2br()

    Die Funktion nl2br() ersetzt alle Newline-Zeichen (\n) durch entsprechende HTML-Konstrukte.

    Syntax der Funktion nl2br():

    string nl2br (string string)

    Zeilenumbruchzeichen können entweder sichtbar (d. h. explizit in die Zeile eingefügt) oder unsichtbar (z. B. im Editor eingegeben) sein. Das folgende Beispiel konvertiert eine Textzeichenfolge in das HTML-Format, indem die \n-Zeichen durch Zeilenumbrüche ersetzt werden:

    // Im Editor angezeigter Textstring. $text_recipe = "Party-Sauce-Rezept: 1 Dose gedünstete Tomaten 3 Esslöffel frischer Zitronensaft Umrühren, kalt servieren."; // Zeilenumbrüche konvertieren in
    $htinl_recipe = nl2br($text_recipe) Die anschließende Ausgabe von $html_recipe gibt den folgenden HTML-Text an den Browser zurück: Partysauce-Rezept:
    1 Dose gedünstete Tomaten
    3 Esslöffel frischer Zitronensaft
    Zusammenrühren, kalt servieren.

    htmlentities()

    Die Funktion htmlentities() wandelt Zeichen in entsprechende HTML-Konstrukte um. Die Syntax für die htmlentities-Funktion lautet:

    string htmlentities (string string)

    Das folgende Beispiel führt die erforderliche Ersetzung von Zeichenfolgenzeichen für die Ausgabe an den Browser durch:

    $user_input = „Das Kochbuch mit dem Titel Cafe Francaise“ kostet

    Die Funktion htmlentities() funktioniert derzeit nur für ISO-8559-1 (ISO-Latin-1) kodierte Zeichen. Außerdem werden Leerzeichen nicht wie erwartet umgewandelt.

    htmlspecialchars()

    Die Funktion htmlspecialchars() ersetzt bestimmte Zeichen, die im HTML-Kontext eine besondere Bedeutung haben, durch entsprechende HTML-Konstrukte. Syntax der Funktion htmlspecialchars():

    string htmlspecialchars (string string)

    Die HTML-Funktion „Sonderzeichen()“ konvertiert derzeit die folgenden Zeichen: & konvertiert in &; „ „ wird in „ umgewandelt; wird in > umgewandelt.

    Diese Funktion hilft insbesondere dabei, Benutzer daran zu hindern, HTML-Markup in interaktiven Webanwendungen (z. B. Online-Foren) einzugeben. Fehler im HTML-Markup können dazu führen, dass die gesamte Seite nicht korrekt formatiert wird. Es gibt jedoch eine effizientere Lösung für dieses Problem: Entfernen Sie Tags mithilfe der Funktion „strip_tags()“ vollständig aus einem String.

    Das folgende Beispiel zeigt die Entfernung potenziell gefährlicher Zeichen durch die Funktion htmlspeclalchars():

    $user_input = „Ich komme einfach nicht hin von PHP und diesen fantastischen Kochrezepten!“; $conv_input = htmlspecialchars($user_input); // $conv_input = „Ich kann einfach nicht<> von PHP & diese fantastischen Kochrezepte!“

    Wenn die Funktion htmlspecialchars() in Kombination mit nl2br() verwendet wird, sollte letztere nach htmlspecialchars() aufgerufen werden. Ansonsten die Designs
    , die beim Aufruf von nl2br() generiert werden, werden in sichtbare Zeichen umgewandelt.

    get_html_translation_table()

    Die Funktion get_html_translation_table() bietet eine praktische Möglichkeit zum Konvertieren von Text in HTML-Äquivalente. Die Syntax der Funktion get_htrril_translation_table() lautet:

    string get_html_translation_table (int-Tabelle)

    Die Funktion get_html_translation_table() gibt eine von zwei Übersetzungstabellen (definiert durch den Tabellenparameter) zurück, die bei der Ausführung der Standardfunktionen htmlspecialchars() und htmlentities() verwendet werden. Der Rückgabewert kann in Kombination mit einer anderen Standardfunktion, strtr(), verwendet werden, um Text in HTML-Code zu konvertieren.

    Der Tabellenparameter nimmt einen von zwei Werten an:

    • HTML_ENTITIES;
    • HTML_SPECIALCHARS.

    Im folgenden Beispiel wird die Funktion get_html_translation_table() verwendet, um Text in HTML zu konvertieren:

    $string = "La Pasta und piate piu amato in Italia"; $translate = get_html_translation_table(HTML_ENTITIES); print strtr($string, $translate); // Sonderzeichen werden in HTML-Konstrukte umgewandelt // und im Browser korrekt dargestellt.

    Mit der Funktion array_flip() können Sie übrigens Text in umgekehrter Richtung in HTML konvertieren und den Originaltext wiederherstellen. Nehmen wir an, dass wir das Ergebnis von strtr() im vorherigen Beispiel nicht ausdrucken, sondern es der String-Variablen $translated zuweisen.

    Im folgenden Beispiel wird der Originaltext durch die Funktion array_flip() wiederhergestellt:

    $translate = array_flip($translate); $translated_string - „La Pasta und piatto piú amato in Italia“; $original_string = strtr($translated_string, $translate); // $original_string = "La Pasta und piate piu amato in Italia";

    strtr()

    Die Funktion strtr() übersetzt eine Zeichenfolge, d. h. sie ersetzt alle Zeichen in der Quellzeichenfolge durch die entsprechenden Zeichen in der Zielzeichenfolge. Syntax der Funktion strtr():

    string strtr (String string, String-Quelle, String-Ziel)

    Wenn die Quell- und Zielzeichenfolgen unterschiedlich lang sind, wird die lange Zeichenfolge gekürzt, damit sie in die kurze Zeichenfolge passt.

    Es gibt eine alternative Syntax für den Aufruf von strtr() mit zwei Parametern; In diesem Fall enthält der zweite Parameter ein assoziatives Array, dessen Schlüssel den zu ersetzenden Teilzeichenfolgen entsprechen und dessen Werte den ersetzenden Teilzeichenfolgen entsprechen. Das folgende Beispiel ersetzt HTML-Tags durch XML-ähnliche Konstrukte:

    " => "

    ", "" => "

    "); $string = "

    Heute in PHP-basierten Nachrichten

    "; print strtr($string, $source); // Druckt den String " Heute in PHP-Powered News" ?>

    Konvertieren Sie HTML in einfachen Text

    Manchmal müssen Sie eine HTML-Datei in einfachen Text konvertieren. Die nachfolgend beschriebenen Funktionen helfen Ihnen bei dieser Aufgabe.

    strip_tags()

    Die Funktion „strip_tags()“ entfernt alle HTML- und PHP-Tags aus einer Zeichenfolge und lässt nur Text darin übrig. Die Syntax der Funktion „strip_tags()“ lautet:

    string strip_tags (string string [, string erlaubt_terri])

    Mit dem optionalen Parameter „allowed_tags“ können Sie Tags angeben, die während des Löschvorgangs übersprungen werden sollen.

    Unten finden Sie ein Beispiel für das Entfernen aller HTML-Tags aus einer Zeichenfolge mithilfe von strip_tags():

    $user_input = „Ich habe gerade Liebe PHP und Feinschmecker Rezepte!"; $stripped_input = strip_tags($user_input); // $stripped_input = "Ich liebe einfach PHP und Gourmet-Rezepte!";

    Das folgende Beispiel entfernt nicht alle, sondern nur einige Tags:

    $input = "I Liebe Zu essen!!"; $strip_input = strip_tags ($user_input, " "); // $strip_input = "Ich liebe es essen!!";

    Das Entfernen von Tags aus Text erfolgt ebenfalls durch die Funktion fgetss().

    get_meta_tags()

    Obwohl die Funktion get_meta_tags() nicht direkt mit der Texttransformation zusammenhängt, ist dies durchaus der Fall nützliche Funktion, was erwähnt werden sollte. Syntax der Funktion Get_meta_tags():

    Array get_meta_tags (String Dateiname/URL [, int include_path])

    Die Funktion get_meta_tags() dient zum Durchsuchen einer HTML-Datei nach META-Tags.

    META-Tags enthalten Informationen über eine Seite, die hauptsächlich von Suchmaschinen verwendet werden. Diese Tags befinden sich in einem Tag-Paar... . Die Verwendung von META-Tags wird im folgenden Snippet demonstriert (nennen wir es example.html, da es in Listing 8.2 verwendet wird): PHP-Rezepte Die Funktion get_meta_tags() durchsucht den Dokumentkopf nach Tags, die mit dem Wort META beginnen, und speichert die Tag-Namen und ihre Inhalte in einem assoziativen Array. Listing 8.2 demonstriert die Anwendung dieser Funktion auf die Datei example.html. Listing 8.2. Extrahieren von META-Tags aus einer HTML-Datei mit get_meta_tags()

    $meta_tags = get_meta_tags("example.html"): // Die Variable $meta_tags enthält ein Array mit den folgenden Informationen: // $meta_tags["keywords"] = "PHP, Code, Rezepte, Web" // $meta_tags[ "description" ] = "PHP Information" // $meta_tags["author"] = "KDG";

    Ein interessantes Detail: META-Tag-Daten können nicht nur aus Dateien extrahiert werden, die sich auf dem Server befinden, sondern auch aus anderen URLs.

    Konvertieren Sie eine Zeichenfolge in Groß- und Kleinschreibung

    In PHP gibt es vier Funktionen, mit denen die Groß-/Kleinschreibung einer Zeichenfolge geändert werden kann:

    strtolower()

    Die Funktion strtolower() wandelt alle alphabetischen Zeichen in einer Zeichenfolge in Kleinbuchstaben um. Die Syntax der Funktion strtolower() lautet:

    string strtolower(string string)

    Nicht-alphabetische Zeichen werden durch die Funktion nicht verändert. Das Konvertieren einer Zeichenfolge in Kleinbuchstaben mithilfe der Funktion strtolower() wird im folgenden Beispiel demonstriert:

    $sentence = "KOCHEN und PHP PROGRAMMIEREN sind meine ZWEI Favoriten!"; $satz = strtolower($satz); // Nach dem Funktionsaufruf enthält $sentence den String // „Kochen und PHP-Programmierung sind meine beiden Favoriten!“

    strtoupper()

    Zeichenfolgen können nicht nur in Kleinbuchstaben, sondern auch in Großbuchstaben umgewandelt werden. Die Konvertierung erfolgt durch die Funktion strtoupper(), die folgende Syntax hat:

    string strtoupper (string string)

    Nicht-alphabetische Zeichen werden durch die Funktion nicht verändert. Das Konvertieren einer Zeichenfolge in Großbuchstaben mithilfe der Funktion strtoupper() wird im folgenden Beispiel demonstriert:

    $sentence = "Kochen und PHP programmieren sind meine beiden Favoriten!"; $satz = strtoupper($satz); // Nach dem Funktionsaufruf enthält $sentence den String // „KOCHEN UND PROGRAMMIEREN VON PHP SIND MEINE ZWEI FAVORITEN!“

    ucfirst()

    Die Funktion ucfirst() wandelt das erste Zeichen einer Zeichenfolge in Großbuchstaben um, sofern es sich um ein alphabetisches Zeichen handelt. Syntax der Funktion ucfirst():

    string ucfirst (string string)

    Nicht-alphabetische Zeichen werden durch die Funktion nicht verändert. Die Konvertierung des ersten Zeichens eines Strings durch die Funktion ucfirst() wird im folgenden Beispiel demonstriert:

    &sentence = "Kochen und PHP programmieren sind meine beiden Favoriten!"; $satz = ucfirst($satz); // Nach dem Funktionsaufruf enthält $sentence den String // „Kochen und PHP programmieren sind meine beiden Favoriten!“

    ucwords()

    Die Funktion ucwords() wandelt den ersten Buchstaben jedes Wortes in einer Zeichenfolge in Großbuchstaben um. Syntax der Funktion ucwords():

    string ucwords (string string")

    Nicht-alphabetische Zeichen werden durch die Funktion nicht verändert. Ein „Wort“ ist definiert als eine Folge von Zeichen, die durch Leerzeichen von anderen Zeichenfolgeelementen getrennt sind. Das folgende Beispiel zeigt, wie die Funktion ucwords() die ersten Zeichen von Wörtern umwandelt:

    $sentence = "Kochen und PHP programmieren sind meine beiden Favoriten!"; $satz = ucwords($satz); // Nach dem Funktionsaufruf enthält $sentence den String // „Kochen und Programmieren in PHP sind meine beiden Favoriten!“

    strhr()

    strrchr("string", "o") – Findet das letzte Vorkommen eines Teilstrings

    Wenn die Teilzeichenfolge nicht gefunden wird, wird FALSE zurückgegeben.

    Im Gegensatz zu strchr() wird nur das erste Zeichen verwendet, wenn die Suchzeichenfolge aus mehr als einem Zeichen besteht.

    Wenn der zweite Parameter keine Zeichenfolge ist, wird er in eine Ganzzahl umgewandelt und als Zeichencode behandelt.

    // letztes Verzeichnis aus $PATH abrufen $dir = substr(strrchr($PATH, ":"), 1); // Alles nach dem letzten Zeilenumbruch abrufen $text = "Zeile 1\nZeile 2\nZeile 3"; $last = substr(strrchr($text, 10), 1);

    highlight_string()

    highlight_string – String-Syntax hervorheben.

    gemischter Highlight_String (String str [, bool return])

    Die Funktion highlights_string() gibt eine syntaxfarbene Version von str aus, wobei die Farben verwendet werden, die in der integrierten Syntaxhervorhebung von PHP definiert sind.

    Wenn der zweite Rückgabeparameter TRUE ist, gibt highlights_string() die hervorgehobene Codeversion als Zeichenfolge zurück, anstatt sie auszugeben. Wenn der zweite Parameter nicht TRUE ist, gibt highlight_string() bei Erfolg TRUE und bei Fehler FALSE zurück.

    Hinweis: 1. Der Rückgabeparameter ist ab PHP 4.2.0 verfügbar. Vorher funktionierte es wie standardmäßig, d. h. FALSCH.
    2.Die Funktion Highlight_String() unterscheidet PHP-Code anhand von Tags. show_source()- Synonym highlight_file(). Um die Standardhervorhebungsfarbe zu ändern, verwenden Sie die folgenden PHP-Anweisungen:

    Highlight.bg #FFFFFF Highlight.comment #FF8000 Highlight.default #0000BB Highlight.html #000000 Highlight.keyword #007700 Highlight.string #DD0000 in .htaccess: php_flag Highlight.bg #FFFFFF in PHP: if(@ini_get("highlight .bg")=="") ...

    addslashes()

    – Escapezeichen für Sonderzeichen in einer Zeichenfolge

    Gibt eine Zeichenfolge mit einem Backslash (\) vor jedem Sonderzeichen zurück, beispielsweise für die spätere Verwendung dieser Zeichenfolge in einer Datenbankabfrage.

    Das einfache Anführungszeichen ("), das doppelte Anführungszeichen ("), der Backslash (\) und NUL (NULL-Byte) werden maskiert.

    $str = "Ist Ihr Name O"reilly?"; // gibt aus: Ist Ihr Name O\"reilly? echo addslashes($str);

    Stripslashes

    - Entfernt Escape-Zeichen, die von der Funktion addslashes() erzeugt werden. Entfernt Escape-Backslashes. (\" wird in " usw. umgewandelt). Doppelte Backslashes (\\) werden in einfache Backslashes (\) umgewandelt.

    Zeilenumbruch()

    Umbricht eine Zeile für eine bestimmte Anzahl von Zeichen mithilfe eines Zeilenumbruchs // Verwendung von wordwrap(). function cite($ourText, $maxlen=60, $prefix="> ") ( $st = wordwrap($ourText, $maxlen-strlen($prefix), "\n"); $st = $prefix.str_replace( "\n", "\n$prefix", $st); return $st; ) echo cite("Die erste Matrix I war von Natur aus perfekt, sie war ein Kunstwerk – makellos, erhaben. Ein Triumph, der nur von übertroffen wird sein monumentales Scheitern. Die Unvermeidlichkeit seines Untergangs ist mir jetzt als Konsequenz der jedem Menschen innewohnenden Unvollkommenheit klar. Daher habe ich es auf der Grundlage Ihrer Geschichte neu gestaltet, um die unterschiedlichen Grotesken Ihrer Natur genauer widerzuspiegeln. Allerdings war ich es wieder frustriert über das Scheitern.“, 20);

    > Die erste Matrix, die ich > entworfen habe, war ganz > natürlich > perfekt, es war ein > Kunstwerk – > makellos, erhaben. > Ein Triumph, der nur von seinem monumentalen Scheitern übertroffen wird. Die Unvermeidlichkeit seines Untergangs ist für mich jetzt offensichtlich als Konsequenz der Unvollkommenheit, die jedem Menschen innewohnt. Ich habe es auf der Grundlage Ihrer Geschichte neu gestaltet, um die unterschiedlichen Grotesken Ihrer Natur genauer widerzuspiegeln. > Allerdings war ich wieder einmal frustriert über das Scheitern.


    Weiterlesen:

    Strings sind ein sehr wichtiger Datentyp, mit dem Sie bei der Lösung von Webentwicklungsproblemen ständig arbeiten müssen. Dieser Artikel beschreibt 10 sehr nützliche Techniken, die das Leben eines PHP-Entwicklers einfacher machen.

    Automatisches Entfernen von HTML-Tags aus einer Zeichenfolge

    Wenn Sie vom Benutzer ausgefüllte Formulare verwenden, müssen Sie manchmal alle unnötigen Tags entfernen. Diese Aufgabe lässt sich leicht mit der Funktion strip_tags() lösen:

    $text = strip_tags($input, "");

    Den Text zwischen $start und $end abrufen

    Eine solche Funktion sollte im Arsenal des Entwicklers vorhanden sein: Sie empfängt die Originalzeile, den Anfang und das Ende und gibt den Text zurück, der zwischen $start und $end enthalten ist.

    Funktion GetBetween($content,$start,$end)( $r = explodieren($start, $content); if (isset($r))( $r = explosion($end, $r); return $r; ) zurückkehren ""; )

    Eine URL in einen Hyperlink umwandeln

    Wenn Sie eine URL in ein Kommentarformular eines WordPress-Blogs einfügen, wird diese automatisch in einen Hyperlink umgewandelt. Wenn Sie die gleiche Funktionalität auf Ihrer Website oder Webanwendung implementieren möchten, können Sie den folgenden Code verwenden:

    $url = "Jean-Baptiste Jung (http://www.webdevcat.com)"; $url = preg_replace("#http://(+)#", " ", $url);

    Aufteilen von Text in ein 140-Zeichen-Array für Twitter

    Vielleicht wissen Sie das Twitter akzeptiert Nachrichten mit maximal 140 Zeichen. Wenn Sie vorhaben, Ihre App mit einer beliebten Social-Messaging-Site zu verbinden, ist eine Funktion, die Nachrichten auf 140 Zeichen kürzt, wahrscheinlich eine gute Lösung.

    Funktion split_to_chunks($to,$text)( $total_length = (140 - strlen($to)); $text_arr = explosion(" ",$text); $i=0; $message=""; foreach ($text_arr as $word)( if (strlen($message[$i] . $word . " ")<= $total_length){ if ($text_arr == $word){ $message[$i] .= $word; } else { $message[$i] .= $word . " "; } } else { $i++; if ($text_arr == $word){ $message[$i] = $word; } else { $message[$i] = $word . " "; } } } return $message; }

    Entfernen der URL aus der Zeichenfolge

    Viele Leute hinterlassen URLs in Blog-Kommentaren, um Traffic zu generieren oder Feedback zu generieren. Solche Links belasten den Blog und können bei einer großen Anzahl zu Frustration beim Eigentümer führen. Die nächste Funktion wird also sehr nützlich sein!

    $string = preg_replace("/\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|$!:,.;]*/ i", "", $string);

    Konvertieren eines Strings in einen Slug

    Müssen Sie einen Slug (für einen Permalink) generieren, der mit SEO-Zielen kompatibel ist? Die folgende Funktion verwendet einen String als Parameter und gibt einen SEO-kompatiblen Slug zurück. Einfach und effektiv!

    Funktion slug($str)( $str = strtolower(trim($str)); $str = preg_replace("/[^a-z0-9-]/", "-", $str); $str = preg_replace ("/-+/", "-", $str); return $str; )

    Analysieren einer CSV-Datei

    CSV-Dateien (Coma Separated Values) sind eine einfache Möglichkeit, Daten zu speichern und zu übertragen, und das Parsen solcher Dateien in PHP ist äußerst einfach. Glauben Sie mir nicht? Der folgende Code demonstriert die Verarbeitung einer CSV-Datei:

    $fh = fopen("contacts.csv", "r"); while($line = fgetcsv($fh, 1000, ","")) ( echo "Contact: ($line)"; )

    Eine Zeichenfolge in einer anderen Zeichenfolge finden

    Wenn ein String in einem anderen String enthalten ist und Sie ihn finden müssen, ist das Problem einfach:

    Funktion enthält($str, $content, $ignorecase=true)( if ($ignorecase)( $str = strtolower($str); $content = strtolower($content); ) return strpos($content,$str) ? wahr falsch; )

    Überprüfen, ob eine Zeichenfolge mit einem bestimmten Muster beginnt

    Einige Programmiersprachen, wie zum Beispiel Java, verfügen über eine startWith-Methode/-Funktion, mit der Sie überprüfen können, ob eine Zeichenfolge mit einem bestimmten Muster beginnt. Leider verfügt PHP nicht über eine so einfache integrierte Funktion.
    Wir können es jedoch selbst tun, und zwar ganz einfach:

    Funktion String_Begins_With($needle, $haystack) ( return (substr($haystack, 0, strlen($needle))==$needle); )

    Wir markieren E-Mail von string

    Haben Sie sich jemals gefragt, wie Spammer an Ihre E-Mail-Adressen gelangen? Es ist einfach. Sie nehmen eine Webseite (z. B. aus einem Forum) und analysieren den HTML-Code, um E-Mail-Adressen zu extrahieren. Der folgende Code verwendet eine Zeichenfolge als Parameter und gibt alle darin enthaltenen E-Mails aus. Bitte verwenden Sie diesen Code nicht für Spam!

    Funktion extract_emails($str)( // Regulärer Ausdruck, der alle E-Mails aus einem String extrahiert: $regexp = "/()+\@(()+\.)+((2,4))+/i"; preg_match_all ($regexp, $str, $m); return isset($m) ? $m : array(); ) $test_string = "Testzeichenfolge... [email protected] Andere Formate prüfen: [email protected]; foobar Noch ein Check: [email protected] test6example.org [email protected] test8@ example.org test9@!foo!.org foobar "; print_r(extract_emails($test_string));

    Websites können in statische und dynamische Websites unterteilt werden. Nachdem sie HTML und CSS beherrschen, mit denen Sie eine schöne Visitenkarte im Internet erstellen können, denken viele Menschen darüber nach, wie sie eine dynamische Website in PHP erstellen können. Gleichzeitig muss der Layouter berücksichtigen, dass er jetzt mit dem Studium der Webprogrammierung beginnt: Die Prinzipien der Arbeit mit der Site werden anders sein. Eines der ersten Probleme, mit denen ein PHP-Anfänger konfrontiert ist, ist die Arbeit mit Strings, deren Lesen und Verarbeiten.

    Es ist erwähnenswert, dass PHP über eine große Anzahl von Methoden verfügt. Daher sollten Sie mit dem Erlernen dieser Methoden mit den einfachsten Manipulationen beginnen, z. B. dem Ausgeben eines Strings, dem Suchen, Abrufen oder Ersetzen eines Teilstrings, dem Ändern der Groß-/Kleinschreibung und dem Zurückgeben der Länge eines Strings. Viele Funktionen funktionieren mit kyrillischen Zeichen nicht gut. Aus Gründen der Übersichtlichkeit sind daher alle Beispiele auf Englisch verfasst. Für kyrillische Zeichenfolgen werden dieselben Funktionen verwendet, jedoch mit dem Präfix mb_ (z. B. mb_strpos()). Bevor Sie Analoga verwenden, müssen Sie die Zeile in php.ini; extension=php_mbstring.dll auskommentieren und einfach das Semikolon entfernen.

    Erstellen und Ausgeben eines Strings

    Wir analysieren die Ausgabe eines Strings auf dem Bildschirm mit dem bekannten Echo-Sprachkonstrukt. Der Programmierer kann die Zeile sofort ausgeben:

    echo „Das ist eine neue Zeile“

    oder erstellen Sie zuerst eine Variable und geben Sie sie dann auf dem Bildschirm aus:

    $str = "Dies ist eine neue Zeile";

    Wenn Sie mehrere Zeilen in einer anzeigen müssen, greifen Sie auf die Verkettung zurück:

    echo „Das“ . "Neu". " Linie";

    $str1 = "Dies";

    $str2 = "Neu";

    $str3 = "String";

    echo $str1 . $str2 . $str3;

    Im letzteren Fall wird der Bildschirm angezeigt Das ist NewLine. Beim Aufruf von echo kann sofort ein Leerzeichen hinzugefügt werden:

    echo $str1 . " " . $str2 . " " . $str3;

    In diesem Fall wird auf dem Bildschirm Folgendes angezeigt: „Dies ist eine neue Zeile.“ Die Verkettung ist nicht nur bei der Ausgabe möglich, sondern auch beim Erstellen eines Strings:

    $str1 = "Dies";

    $str2 = "Neu";

    $str3 = "String";

    $string = $str1 . " " . $str2 . " " . $str3;

    echo $string;

    Echo zeigt sowohl Kyrillisch als auch Kyrillisch an. Wenn eine der Variablen eine Zahl enthielt, wird diese Zahl bei der Verkettung in die entsprechende Zeichenfolge umgewandelt:

    $summe = $i + $i; //jetzt enthält $sum die Zahl 4

    echo $i . „+“ . $i . " = " . $summe;

    Auf dem Bildschirm erscheint: „2 + 2 = 4“.

    Servicesymbole

    Nehmen wir an, ein String wird mit ($string = „Like this“) definiert. Dann können Sie Steuersequenzen absolut sicher verwenden:

    • \n führt einen Zeilenvorschub durch;
    • \r gibt den Wagen zurück;
    • \" entgeht doppelten Anführungszeichen:
      • echo "String mit „doppelten“ Anführungszeichen“; //String mit doppelten Anführungszeichen
    • \$ entkommt Dollar;
    • \\ entgeht einem Backslash.

    Es gibt noch viele weitere Sequenzen, die alle in der offiziellen PHP-Dokumentation zu finden sind.

    So ermitteln Sie die Position des ersten Vorkommens einer Teilzeichenfolge

    Nehmen wir an, wir haben eine einfache Zeile:

    Wir haben auch zwei Zeilen mit Namen:

    $name = "Yemelyan";

    $anotherName = "Katherine";

    Wir müssen wissen, ob die erste Zeile diese beiden Namen enthält. Verwenden Sie dazu die Funktion strpos($str, $search). Es gibt die Position der gesuchten Teilzeichenfolge $search zurück, wenn diese Zeichenfolge im Original enthalten ist, $str. Andernfalls gibt die Funktion den booleschen Wert false zurück. Beispielsweise gibt strpos($string, $anotherName) false zurück, während strpos($string, $name) eine Ganzzahl zurückgibt. Der Code sieht so aus (wir schreiben die Version, wenn die Position auf dem Bildschirm angezeigt wird):

    $string = „Mein Name ist Yemelyan und ich bin 27 Jahre alt“;

    $name = "Yemelyan";

    $anotherName = "Katherine";

    echo strpos($string, $anotherName); //gibt false aus

    echo strpos($string, $name); //gibt die Position des ersten Vorkommens des Teilstrings aus

    Bitte beachten Sie, dass die Zeilennummerierung bei Null beginnt, d. h. in unserem Fall wird in der letzten Zeile die Zahl 11 angezeigt (Leerzeichen zählen auch).

    Ermitteln der Position des letzten Vorkommens eines Teilstrings und von Fallstricken

    Wenn die Funktion strpos() die Position des ersten Vorkommens zurückgibt, sucht ihre Umkehrfunktion strrpos() nach dem letzten Vorkommen des Teilstrings.

    Mit der Startnummerierung sind einige Fallstricke verbunden. Dies ist eine Überlegung wert: In PHP kann die Arbeit mit Strings durch Einschränkungen bei Vergleichen erschwert werden. Daher ist es besser, den Vergleichsoperator nicht mit Negation zu verwenden: strpos($str, $search)!=false. In jeder PHP-Version funktionieren Beispiele mit einer solchen Äquivalenz möglicherweise nicht richtig, da die Zeilennummerierung bei Null beginnt und in der logischen Interpretation 0 falsch ist. Dies gilt auch für die Funktion strrpos().

    So ermitteln Sie die Häufigkeit des Vorkommens einer Teilzeichenfolge

    Oftmals müssen Sie nicht die Position des ersten oder letzten Vorkommens einer Teilzeichenfolge in einer Zeichenfolge ermitteln, sondern deren Gesamtzahl. Verwenden Sie dazu die Funktion substr_count(), die mindestens zwei Variablen verarbeitet: substr_count($str, $search). Gibt eine Ganzzahl zurück. Wenn der Suchbereich um eine Zeichenfolge reduziert werden muss, werden der Funktion zwei weitere Variablen übergeben: der Anfang und das Ende der Zeichenfolge. Das heißt, die Funktion wird in diesem Fall wie folgt aufgerufen: substr_count($str, $search, $start, $end). Die Funktion sucht nach der Teilzeichenfolge $search im Intervall von $start bis $end der Quellzeichenfolge $str. Wenn die Zeichenfolge nicht gefunden wird, gibt die Funktion Null zurück.

    So ändern Sie die Groß-/Kleinschreibung einer Zeichenfolge in PHP: Beispiele

    Die Änderung der Groß-/Kleinschreibung wird häufig zum Vergleichen von Zeichenfolgen verwendet. Nehmen wir an, der Benutzer muss den Namen des höchsten Gottes in das Programm eingeben. Es gibt eine Option „Eins“, mit der die Antwort des Benutzers verglichen wird. Wenn der eingegebene Text nicht mit dem vorhandenen übereinstimmt (der Benutzer schreibt beispielsweise „eins“ oder „EINS“), gibt das Programm „false“ statt „true“ zurück. Um dies zu vermeiden, wird die Fallwechselfunktion verwendet. Dies wird häufig verwendet, wenn eine PHP-Site über Tags verfügt: Anstelle von Hunderten von Variationen des Wortes „persönlich“ („Personal“, „persönlich“, „PERSONAL“ usw.) gibt es nur ein Tag in Kleinbuchstaben.

    Die Funktion strtolower() ändert die Groß- und Kleinschreibung in Kleinbuchstaben. Nehmen wir an, es gibt eine Zeile $catName = „Fluffy“. Die Funktion strtolower($catName) gibt die Zeichenfolge „fluffy“ zurück. Mit der Funktion strtoupper() können Sie die Groß- und Kleinschreibung in Großbuchstaben umwandeln.

    So ermitteln Sie die Länge einer Zeichenfolge in PHP: Arbeiten mit Funktionen

    Oft muss die Länge einer Zeichenfolge ermittelt werden. Beispielsweise kann es in PHP beim Erstellen einer Schleife erforderlich sein, mit solchen Zeichenfolgen zu arbeiten. Um nach einer Zeichenfolge zu suchen, verwenden Sie die Funktion strlen(), die eine Zahl zurückgibt – die Anzahl der Zeichen. Wir dürfen nicht vergessen, dass das letzte Zeichen die Nummer strlen($str)-1 haben wird, da die Nummerierung bei Null beginnt.

    Einen Teilstring in PHP abrufen und ersetzen: Arbeiten mit Strings

    Das Abrufen eines Teilstrings erfolgt durch die Funktion substr(), die zwei oder drei Argumente annehmen kann: substr($str, $start, $end). Nehmen wir an, wir haben $string = „Fluffy cat“ und möchten den Teilstring vom zweiten bis zum vierten Zeichen erhalten. Da die Nummerierung bei Null beginnt, sieht die Variable mit dieser Teilzeichenfolge folgendermaßen aus: $newString = substr($string, 1, 4). Wenn wir $newString = substr($string, 1) eingeben, erhalten wir einen Teilstring vom zweiten bis zum letzten Zeichen (also „ruffy“). Dieser Code ist identisch mit dem vollständigen String-Code mit strlen(): substr($string, 1, strlen($string)).

    Um einen Teilstring zu ersetzen, verwenden Sie die Funktion str_replace(), die drei Variablen akzeptiert: str_replace($subStr, $newSub, $str). Im Gegensatz zu vielen anderen Funktionen funktioniert str_replace() korrekt mit kyrillischen Zeichen und hat kein Analogon mit einem Präfix. Beispiel:

    $str = "Das Wetter ist heute schrecklich!";

    $newStr = str_replace("schrecklich", "wunderbar", $str); //Wunderbares Wetter heute!

    Konvertieren einer Zeichenfolge in eine Zahl

    Jeder, der Webprogrammierung lernt, muss früher oder später einen String in eine Zahl umwandeln. Dazu werden zwei ähnliche Funktionen verwendet: intval() und floatval(), die jeweils eine $string-Variable benötigen. Sie unterscheiden sich nur in der Art der zurückgegebenen Daten: intval() gibt eine Ganzzahl zurück und floatval() gibt eine Gleitkommazahl zurück.

    Um sowohl intval() als auch floatval() verwenden zu können, muss die Zeichenfolge mit Ziffern beginnen, die in eine Zahl umgewandelt werden. Wenn auf Zahlen eine Reihe von Buchstaben folgt, werden diese einfach ignoriert. Falls die Zeichenfolge mit Buchstaben beginnt, wird bei Verwendung der Funktion Null zurückgegeben. Idealerweise sollte die Zeile nur Zahlen enthalten.

    Konvertieren einer Zahl in eine Zeichenfolge

    Oft müssen Zahlen in eine Zeichenfolge umgewandelt werden. Angenommen, Sie müssen eine halbe Zahl nehmen und quadrieren (überprüfen Sie beispielsweise, ob die Gleichheit wahr ist: 88 x 88 + 33 x 33 = 8833). In diesem Fall wird die Funktion strval() verwendet, die einen String mit einer Zahl zurückgibt. Danach können Sie alle weiteren Aktionen mit der neuen Zeichenfolge ausführen: Ändern, nach einem Vorkommen einer Teilzeichenfolge suchen und andere Funktionen. Bei Bedarf kann die Zeichenfolge mit der oben bereits beschriebenen Methode wieder in eine Zahl umgewandelt werden.

    Der Artikel untersuchte nur einen kleinen Teil aller Funktionen im Zusammenhang mit Strings. Einige unbeschriebene Funktionen arbeiten mit Symbolen, die meisten wurden jedoch aus Spezifitätsgründen nicht in das Material aufgenommen. Um sich mit diesen Funktionen vertraut zu machen, sollten Sie die offizielle PHP-Dokumentation lesen, die die neuesten Informationen enthält.

    gastroguru 2017