Parsing und Verarbeitung einer Webseite in PHP: Auswahl der besten Bibliothek. Lesen einer Datei in PHP Auswahl der besten Option Parsen eines PHP-Strings

Erscheinungsdatum: 01.03.2018

Grüße Freunde! 🙂

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

Daran ist nichts Kompliziertes, aber manchmal werden die Augen von der Fülle der Optionen, die die Serversprachen bieten, weit aufgerissen. Wenn ich speziell über PHP spreche, in dem ich gerade programmiere, können Sie mit seinen Funktionen den Inhalt von Dateien Zeile für Zeile und vollständig in eine Zeile und in ein Array einlesen, und für die letztere Option gibt es mehrere weitere Möglichkeiten. .Das sind die Torten 🙂

Leider arbeiten diese Methoden für Dateien unterschiedlicher Struktur mit unterschiedlichen Geschwindigkeiten, und in der offiziellen Dokumentation gibt es kein einziges Wort über die Geschwindigkeit ihrer Arbeit. Dies kann nur in der Praxis beurteilt werden, indem alle möglichen Optionen durchgesehen werden.

Deshalb zeige ich euch heute die Arbeit verschiedene Funktionen PHP zum Lesen von Dateien, sodass Sie wissen, aus was Sie wählen müssen, wenn Sie einen PHP-Dateiparser für reale Aufgaben erstellen müssen. Und ich werde Ihnen auch genau sagen, wie Sie unter „Kampfbedingungen“ die richtige Wahl treffen.

Gehen! 🙂

Erstellen eines PHP-Datei-Parsers - Anfangsbedingungen

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

Einmal hatte ich auf der Arbeit ein Problem, das darin bestand, dass die Telefonnummern von Benutzern im falschen Format in der Datenbank gespeichert waren. Den Fehler selbst habe ich natürlich ohne Probleme behoben.

Doch was tun mit fehlerhaften Informationen, die damals bereits in der Datenbank hinterlegt waren? Natürlich musste es durch das richtige ersetzt werden.

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

Ich muss sagen, es stellte sich als ziemlich gewichtig heraus: 352 KB und 8223 Textzeilen, die jeweils die Benutzer-ID und seine Telefonnummer im Format enthielten user_id:phone_number.

Mit einem Wort, die ganze Aufgabe bestand darin, die Datei Zeile für Zeile zu lesen PHP bedeutet, das Extrahieren der Kennung und der Telefonnummer aus der Zeichenfolge, gefolgt von der Aktualisierung des Telefonwerts des Benutzers in der Datenbank, der anhand der ID gefunden wird.

Mein Projekt wurde auf dem PHP Yii-Framework implementiert, daher werden Sie in weiteren Codebeispielen Elemente seiner API insbesondere für die Arbeit mit der Datenbank kennenlernen, also keine Angst 🙂

Nachdem ich die in der Sprache verfügbaren Konstruktionen sowie die im Internet nach und nach gesammelten Erfahrungen anderer Entwickler analysiert hatte, gelang es mir, 4 Methoden zu identifizieren, die ich Ihnen später demonstrieren werde.

Nun, danach werde ich Ihnen sagen, nach welchen Kriterien und wie genau ich mich zwischen ihnen entschieden habe Beste Option. Und natürlich werde ich die Ergebnisse teilen 🙂

Dieser Artikel ist also eine großartige Übung in Geduld 🙂 Seine Essenz besteht darin, das folgende Material im Detail zu studieren, bis die Ergebnisse vorliegen, die Sie am Ende erwarten. Ganz nebenbei können Sie übrigens auch an Ihrer Vorstellungskraft arbeiten, je nachdem, wie genau die ideale Variante gewählt wird.

Lesen einer Datei in PHP Zeile für Zeile mit fgets()

Als Ergebnis wird ein PHP-Dateiparser implementiert dieser Algorithmus, nahm ich die folgende Form:

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: unerwartetes fgets() fehlgeschlagen\n"; ) fclose($fh); ) else echo "Überprüfe den Dateinamen, Datei existiert nicht!"; )

Ich werde mein Gekritzel ein wenig entziffern, falls jemand Verständnisschwierigkeiten hat.

Ganz am Anfang die Variable $Dateiname wird der Wert des Namens der zu analysierenden Datei mit dem vollständigen Pfad dazu zugewiesen. Anschließend prüft PHP, ob eine Datei existiert und ob sie mit Funktionen lesbar ist Datei existiert() Und ist_lesbar() bzw.

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

Wenn die Datei erfolgreich geöffnet wurde, gehen wir alle Zeilen in einer Schleife durch, bis die Datei endet, und wenn die Zeile nicht leer ist, trennen wir sie durch den Doppelpunkt mit der Funktion explodieren().

Dann überprüfen wir, ob die Benutzer-ID und sein Telefon nicht leer sind, suchen den Benutzer in der Datenbank anhand der ID und aktualisieren, falls vorhanden, die Telefonnummer für ihn, indem wir den Bindestrich und den Beginn einer neuen Zeile aus der Nummer entfernen Wert.

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

PHP parst eine Datei in ein Array mit file()

Diese Methode zum Lesen einer Datei in PHP beinhaltet die Verwendung der Funktion Datei(), wodurch die Datei geöffnet und ihr Inhalt in ein Array eingefügt wird. In diesem Fall sind die Elemente des Arrays nur die Zeilen der gelesenen Datei, was in meiner Situation großartig 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 diese Methode von der vorherigen Art, eine Datei in PHP zu lesen, nur am Anfang, wo die Datei geöffnet und sofort von der Funktion gelesen wird Datei() statt Haufen fopen() + fgets(), wie vorher.

PHP liest Datei mit fread() in 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 ganze Datei in PHP einzulesen, habe ich die mit der Funktion als Fragmentgröße ermittelte 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 " Überprüfen Sie den Dateinamen, die Datei existiert nicht!"; )

Diese Art zu lesen PHP-Datei bedeutet, dass es dem vorherigen sehr ähnlich ist, da trotz der Tatsache, dass mit PHP die Daten aus der Datei zunächst nicht in ein Array, sondern in eine String-Variable gelesen und dann immer noch in ein Array konvertiert werden , Weil Es ist einfacher damit zu arbeiten als mit einer Schnur.

Der einfachste Weg, einen String in PHP in ein Array umzuwandeln, ist mit Hilfe der bereits heute verwendeten Funktion explode() als Trennzeichen, an die das Zeichen des Anfangs des Strings übergeben wurde.

Erstellen Sie einen PHP-Dateiparser basierend auf file_get_contents()

Nun, und schließlich habe ich mich entschieden, das Parsing von PHP-Dateien mithilfe der Funktion zu implementieren file_get_contents(), das nur dazu dient, die gesamte Datei in eine Zeile einzulesen, d.h. funktioniert fast wie fread($fp, Dateigröße($Dateiname)).

Die einzige Ausnahme ist, dass file_get_contents() selbst die Datei öffnet und liest, während die Verwendung von fread() die Datei zuerst mit fopen() öffnen und ihren Zeiger für die weitere Verwendung erhalten musste.

Im Allgemeinen ist der auf file_get_contents() basierende PHP-Datei-Parser-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 " Überprüfen Sie den Dateinamen, die Datei existiert nicht!"; )

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

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

Aus den gefundenen Optionen die optimalste auszuwählen, d.h. Den schnellsten habe ich in jedem Fall bestimmt. Dazu habe ich die im Artikel unter dem Link beschriebene Technik verwendet.

An sich sind PHP-Dateilesefunktionen recht schnell, daher habe ich, um zumindest einige mehr oder weniger greifbare Zahlen ihrer Betriebszeit zu erreichen, Datenbankoperationen bewusst in den getesteten Fragmenten belassen, die in allen Fällen gleich waren.

Der Einfachheit halber habe ich mich auch dafür entschieden, die Laufzeit des PHP-Skripts auf die dritte Dezimalstelle zu runden, d.h. bis zu Tausendstelsekunden (obwohl es tatsächlich auf Hundertstel hätte begrenzt werden können).

Ich erinnere mich, als ich in der Schule meine wissenschaftliche Arbeit in Physik geschrieben habe (ja, so ein Erlebnis gab es 🙂) zu ihrer Verteidigung vor Hochschullehrern, wurde mir ständig vorgeworfen, dass ich zu wenig Experimente habe (ich habe jeweils 3 Experimente gemacht Fall). Die "Lichter der Wissenschaft" nannten die Zahlen in 100, nun ja, oder mindestens 10 Experimenten, um verschiedene Situationen zu vergleichen, so dass Sie eine Art Vergleich anstellen und die Wahrscheinlichkeit einer zufälligen Überlegenheit einer gegenüber der anderen minimieren können.

Ja, ich habe damals viel von ihnen bekommen, aber ich habe ihre Empfehlungen 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, bei meinen aktuellen Experimenten wissenschaftlich zu sein, daher hielt ich die Anzahl von 100 Experimenten für unnötig groß und deren Durchführung für zu langwierig.

Infolgedessen beschloss ich, mich auf 10 Experimente für jede Version des PHP-Dateiparsers zu beschränken, was, wie sich herausstellte, völlig ausreichte, um einen klaren Anführer herauszugreifen, ohne mit Fakten und Hinweisen für Hundertstel und Tausendstel zu jonglieren Sekunde der Überlegenheit.

Die Ergebnisse der Laufzeitberechnungen für die von mir entwickelten PHP-Dateiparser sind in der folgenden Tabelle dargestellt und nach den PHP-Funktionen sortiert, auf 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 mich entschieden, zusätzlich zu den Skriptausführungszeiten in jedem der 10 Experimente, die Durchschnittstemperatur im Krankenhaus zu berechnen 🙂

Nämlich das arithmetische Mittel der Laufzeit jedes PHP-Datei-Parsers, damit der Leader identifiziert werden kann.

Und es stellte sich heraus, dass dies, wie Sie sehen, die letzte Option war, die auf der Grundlage der Funktion implementiert wurde file_get_contents(), die den Inhalt der Datei in eine Zeichenfolgenvariable liest, ihn dann in ein Array konvertiert 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. Ich kann nur davon ausgehen, dass die Operation zum Einlesen einer Datei in eine Zeichenfolge verwendet wird file_get_contents() erfordert weniger Ressourcen als das Erstellen eines vorgefertigten Arrays von Zeichenfolgen Datei().

Und die Überlegenheit gegenüber fgets() und fread() kann der Tatsache zugeschrieben werden, dass Sie die Datei vor ihrer Verwendung mit fopen() öffnen müssen, was einige Zeit in Anspruch nimmt.

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

Analysieren einer Datei in PHP - Schlussfolgerungen

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

Vergessen Sie auch nicht, dass PHP selbst eine synchrone Programmiersprache ist, d.h. Alle Serveroperationen erfolgen sequentiell ohne die Möglichkeit, ihre parallele Ausführung zu konfigurieren, einschließlich auf verschiedenen Kernen des Serverprozessors.

Daher kann die Ausführungszeit von Operationen, die in PHP-Code geschrieben sind, von einer Reihe von Faktoren beeinflusst werden, von denen der Hauptfaktor die Kernlast zum Zeitpunkt der Ausführung der PHP-Anwendung ist.

Ich habe dies besonders während der Experimente gespürt, als derselbe PHP-Dateiparser für 9, dann für 12 und dann wieder für 9 Sekunden in drei aufeinanderfolgenden Iterationen aufgrund des banalen Starts von Windows Explorer im zweiten Fall arbeitete, was natürlich , erfordert ebenfalls Serverressourcen.

Angesichts dieser Merkmale führte ich die Experimente fast gleichzeitig, eines nach dem anderen, mit denselben laufenden Programmen durch, um die Ressourcen der Serverhardware nicht zu verstreuen.

Gehen Sie daher in Zukunft bei ähnlichen Experimenten mit PHP-Konstrukten ähnlich vor, denn. dies ist in der Tat die einzige Möglichkeit, Experimente zu gleichen Bedingungen zu bringen.

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

Nun, wenn Sie keinen völlig untätigen Kern finden können (was auf dem Niveau moderner Software nicht überraschend ist), dann können Sie zumindest den am wenigsten belasteten oder zumindest mit einer statischen Last finden, die sich im Laufe der Zeit nicht ändert .

Zusammenfassend möchte ich sagen, dass die im Artikel angegebenen 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 brauche jede Ihrer Meinungen für die Weiterentwicklung 🙂

Bis bald! 🙂

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

Über 5 Jahre Erfahrung professionelle Website-Entwicklung. Arbeiten mit PHP, offener Wagen, WordPress, Laravel, Yii, MySQL, PostgreSQL, JavaScript, Reagieren, Eckig und andere Webentwicklungstechnologien.

Erfahrung in der Entwicklung von Projekten auf verschiedenen Ebenen: Startseiten, Unternehmens-Websites, Online Einkaufen, CRM, Portale. Einschließlich Support und Entwicklung Projekte mit hoher Auslastung. Senden Sie Ihre Bewerbungen per E-Mail [E-Mail geschützt].

Strings sind ein sehr wichtiger Datentyp, mit dem Sie ständig arbeiten müssen, wenn Sie Probleme in der Webentwicklung lösen. Dieser Artikel beschreibt 10 sehr nützliche Tricks, die das Leben eines PHP-Entwicklers erleichtern werden.

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, "");

Holen Sie sich Text zwischen $start und $end

Eine solche Funktion sollte im Arsenal des Entwicklers stehen: Sie nimmt den ursprünglichen String, start und end, und gibt den Text zurück, der zwischen $start und $end enthalten ist.

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

URL in Hyperlink umwandeln

Wenn Sie eine URL in Form eines Kommentars in einem WordPress-Blog eingeben, wird sie automatisch in einen Hyperlink umgewandelt. Wenn Sie dieselbe 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 kennst du das Twitter akzeptiert Nachrichten mit einer Länge von bis zu 140 Zeichen. Wenn Sie vorhaben, Ihre App mit einer beliebten Social-Messaging-Site interagieren zu lassen, ist eine Funktion, die Nachrichten auf 140 Zeichen kürzt, eine gute Wahl.

Funktion split_to_chunks($to,$text)( $total_length = (140 - strlen($to)); $text_arr = explode(" ",$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 einer URL aus einem String

Viele Leute hinterlassen URLs in Blog-Kommentaren, um Zugriffe zu erhalten oder Feedback zu erhalten. Solche Links verschmutzen den Blog und können für den Besitzer frustrierend sein, wenn es zu viele davon gibt. Die folgende Funktion wird also sehr nützlich sein!

$string = preg_replace("/\b(https?|ftp|Datei):\/\/[ [E-Mail geschützt]#\/%?=~_|$!:,.;]*/i", "", $string);

String in Slug umwandeln

Müssen Sie einen Slug (für einen Permalink) generieren, der SEO-kompatibel ist? Die folgende Funktion nimmt 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); Rückgabe $str; )

Analysieren einer CSV-Datei

CSV-Dateien (Coma Separated Values ​​– Comma Separated Values) sind eine einfache Möglichkeit, Daten zu speichern und zu übertragen, und das Parsen solcher Dateien in PHP ist extrem einfach. Glauben Sie nicht? Der folgende Code zeigt, wie eine CSV-Datei verarbeitet wird:

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

Eine Zeichenfolge in einer anderen Zeichenfolge finden

Wenn die Zeichenfolge in einer anderen Zeichenfolge enthalten ist und Sie sie finden müssen, wird das Problem einfach gelöst:

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 Java haben eine startWith-Methode/-Funktion, mit der Sie überprüfen können, ob ein String mit einem bestimmten Muster beginnt. Leider hat PHP keine so einfache eingebaute Funktion.
Wir können es jedoch selbst machen, und zwar ganz einfach:

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

Wir verteilen E-Mail von Zeichenfolge

Haben Sie sich jemals gefragt, wie Spammer an Ihre E-Mail-Adressen gelangen? Alles 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 nimmt einen String als Parameter und druckt alle darin enthaltenen E-Mails. 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 = "Teststring... [E-Mail geschützt]Überprüfung anderer Formate: [E-Mail geschützt]; foobar Noch eine Prüfung: [E-Mail geschützt] test6example.org [E-Mail geschützt] [E-Mail geschützt] beispiel.org [E-Mail geschützt]!foo!.org foobar "; print_r(extract_emails($test_string));

Die Aufgabe, die notwendigen Informationen von einer Drittanbieterseite zu parsen und zu verarbeiten, steht einen 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 der Dutzenden von Bibliotheken soll er wählen? In diesem Artikel haben wir versucht, die beliebtesten Optionen in Betracht zu ziehen und die beste davon auszuwählen.

Reguläre Ausdrücke

Auch wenn „Stammgäste“ das erste sind, was einem in den Sinn kommt, sollten Sie sie nicht für echte Projekte verwenden.

Ja, reguläre Ausdrücke eignen sich am besten für einfache Aufgaben, aber ihre Verwendung wird viel schwieriger, wenn Sie einen großen und komplexen HTML-Code parsen müssen, der außerdem nicht immer einem bestimmten Muster entspricht und sogar Syntaxfehler enthalten kann.

Anstatt Ihren regulären Ausdruck mit jeder kleinsten Codeänderung zu "beenden", empfehlen wir die Verwendung der folgenden Tools - es ist einfacher, bequemer und zuverlässiger.

XPath und DOM

htmlSQL

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

Fügt HTML-Zeilenumbruchcode vor jedem Zeilenumbruch ein

  • number_format - Formatiert eine Zahl mit Gruppentrennung
  • ord - Gibt den ASCII-Zeichencode zurück
  • parse_str - Parst einen String in Variablen
  • print - Druckt eine Zeichenfolge
  • Druckf
  • quoted_printable_decode – Dekodiert eine Zeichenfolge, die durch die zitierte druckbare Methode kodiert wurde
  • quotemeta - Escape-Sonderzeichen
  • rtrim - Entfernt Leerzeichen am Ende einer Zeichenfolge
  • sha1 – Gibt den SHA1-Hash einer Zeichenfolge zurück
  • sha1_file – Gibt den SHA1-Hash einer Datei zurück
  • similar_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äß dem angegebenen Format
  • strcasecmp - Zeichenfolgenvergleich ohne Berücksichtigung der Groß-/Kleinschreibung, sicher für Daten in Binärform
  • strcmp - Zeichenfolgenvergleich sicher für Daten in Binärform
  • strcoll - Vergleich von Strings bei der aktuellen Locale
  • strcspn - Gibt die Länge des Abschnitts am Anfang einer Zeichenfolge zurück, die nicht mit der Maske übereinstimmt
  • stripcslashes - Entfernt von addcslashes() erzeugte Escape-Zeichen
  • stripos - Gibt die Position des ersten Vorkommens einer Teilzeichenfolge zurück, Groß- und Kleinschreibung wird nicht berücksichtigt
  • striplashes - Entfernt Zeichen-Escapes, die von addlashes() erzeugt wurden
  • strip_tags - Entfernt HTML- und PHP-Tags aus einer Zeichenfolge
  • stristr - Ähnlich wie die strstr-Funktion, aber ohne Berücksichtigung der Groß-/Kleinschreibung
  • strlen - Gibt die Länge einer Zeichenfolge zurück
  • strnatcasecmp - Vergleich von Strings ohne Berücksichtigung der Groß-/Kleinschreibung mit einem Algorithmus
  • strnatcmp - Vergleich von Strings mit dem Algorithmus "Natural Ordering".
  • strncasecmp
  • strncmp - Vergleicht die ersten n Zeichen von Strings ohne Berücksichtigung der Groß- und Kleinschreibung, binärsicher
  • strpos - Findet das erste Vorkommen einer Teilzeichenfolge in einer Zeichenfolge
  • strchr
  • strrev - Einen String umkehren
  • strripos - Gibt die Position des letzten Vorkommens einer Teilzeichenfolge zurück, Groß- und Kleinschreibung wird nicht beachtet
  • strrpos - Findet das letzte Vorkommen eines Zeichens in einer Zeichenfolge
  • strspn - Gibt die Länge des Abschnitts am Anfang der Zeichenfolge zurück, die der Maske entspricht
  • strstr - Findet das erste Vorkommen einer Teilzeichenfolge
  • strtok - Teilt einen String
  • strtolower - Konvertiert einen String in Kleinbuchstaben
  • strtoupper - Konvertiert einen String in Großbuchstaben
  • strtr - Konvertiert gegebene Zeichen
  • str_ireplace – Eine Variante der Funktion str_replace(), bei der die Groß-/Kleinschreibung nicht beachtet wird.
  • str_pad - Füllt eine Zeichenfolge mit einer anderen Zeichenfolge auf die angegebene Länge auf
  • str_repeat - Gibt eine sich wiederholende Zeichenfolge zurück
  • str_replace - Ersetzt eine Suchzeichenfolge durch eine Ersatzzeichenfolge
  • str_rot13 – Führt eine ROT13-Transformation an einer Zeichenfolge durch
  • str_shuffle - Mischt Zeichen in einem String
  • str_split - Wandelt einen String in ein Array um
  • str_word_count – Gibt Informationen über die Wörter in einer Zeichenfolge zurück
  • substr - Die Funktion gibt einen Teil einer Zeichenfolge zurück
  • substr_count – Zählt die Anzahl der Vorkommen einer Teilzeichenfolge in einer Zeichenfolge
  • substr_replace - Ersetzt einen Teil einer Zeichenfolge
  • trim - Entfernt Leerzeichen am Anfang und Ende einer Zeichenfolge
  • ucfirst - Konvertiert das erste Zeichen einer Zeichenfolge in Großbuchstaben
  • ucwords - Konvertiert das erste Zeichen jedes Wortes in einer Zeichenfolge in Großbuchstaben
  • vprintf - Druckt einen formatierten String
  • vsprintf - Gibt eine formatierte Zeichenfolge zurück
  • Zeilenumbruch - Umbricht eine Zeile mit der angegebenen Anzahl von Zeichen mit einem Zeilenumbruchzeichen
  • Merkmale von Vergleichsoperatoren in Bezug auf Zeichenfolgen.

    $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 2! if ("" == $zero) echo 3; //* Und das wird auch nicht helfen - es wird ausgegeben!.. if ("$zero" == "") echo 4; // So ist es richtig. if (strval($zero) == "") echo 5; // Das ist auch richtig - es gibt keine 5 aus. if ($zero === "") echo 6; // Besser, aber nicht gültig in PHP 3.

    hacken()

    Die Funktion chop() gibt einen String zurück, nachdem sie abschließende Leerzeichen und Zeilenumbrüche entfernt hat. chop()-Funktionssyntax:

    Saite hacken (Saite Saite)

    Im folgenden Beispiel entfernt die Funktion chop() 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 einen formatierten String zurück. Die Syntax der Funktion str_pad() lautet:

    string str_pad (string string, int padding-length [, string padding [, int padding-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 wird die Zeichenfolge rechts aufgefüllt; Sie können jedoch die Konstanten STR_PAD_RIGHT, STR_PAD_LEFT oder STR_PAD_BOTH im Padding-Type-Parameter übergeben, wodurch die Zeichenfolge in der angegebenen Richtung aufgefüllt wird. Das Beispiel zeigt das Auffüllen einer Zeichenfolge mit der Funktion str_pad() mit Standardparametern:

    $food = "salat"; print str_pad ($food, 5): // Druckt den String „salat“ Das folgende Beispiel verwendet die optionalen Parameter der Funktion str_pad(): $header = „Table of Contents“; print str_pad ($header, 5, „= +=+=" , STR_PAD_BOTH); // Browser zeigt String an =+=+= Tab of Contents=+=+="

    trimmen()

    Die Funktion trim() entfernt alle Leerzeichen an beiden Enden einer Zeichenfolge und gibt die resultierende Zeichenfolge zurück. Die Syntax für die Funktion trim() lautet:

    Saitenbesatz (Saitenland)

    Entfernte Leerzeichen enthalten auch die Sonderzeichen \n, \r, \t, \v und \0.

    ltrim()

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

    Zeichenfolge ltrim (Zeichenfolge Zeichenfolge)

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

    strlen()

    Bestimmen der Länge einer Zeichenfolge

    Die Länge eines Strings 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 eines Strings mit der Funktion strlen() ermitteln:

    $string = "Hallo"; $länge = strlen($string); // $länge = 5

    Vergleich zweier Saiten

    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 Strings unter Berücksichtigung der Groß- und Kleinschreibung. Die Syntax der Funktion strcmp() lautet: int strcmp (string string1, string string2)

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

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

    $sthng1 = "Butter"; $string2 = "Butter"; if ((strcmp($string1. $string2)) == 0) : print "Strings are equal!"; endif; // wenn der Befehl TRUE zurückgibt

    strcasecmp()

    Die Funktion strcasecmp() funktioniert genau wie strcmp(), mit einer Ausnahme: Beim Vergleich wird die Groß-/Kleinschreibung nicht beachtet. Die Syntax der Funktion strcasecmp() lautet:

    int strcasecmp (Zeichenfolge Zeichenfolge1, Zeichenfolge Zeichenfolge2)

    Das folgende Snippet vergleicht zwei identische Zeichenfolgen:

    $string1 = "Butter"; $string2 = "Butter"; if ((strcmp($string1, $string2)) == 0) : print "Strings are equal!"; endif; // wenn der Befehl TRUE zurückgibt

    strspn()

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

    int strspn (Zeichenfolge Zeichenfolge1, Zeichenfolge Zeichenfolge2)

    Das folgende Snippet zeigt, wie die Funktion strspn() verwendet wird, um ein Passwort zu validieren:

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

    strcspn()

    Die Funktion strcspn() gibt die Länge des ersten Segments von Zeichenfolge1 zurück, das Zeichen enthält, die in Zeichenfolge2 nicht gefunden wurden. Syntax der Funktion strcspn():

    int strcspn (Zeichenfolge Zeichenfolge1, Zeichenfolge Zeichenfolge2)

    Das folgende Snippet verwendet die Funktion strcspn(), um ein Passwort zu validieren:

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

    Umgang mit 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 verwendet werden, wenn relativ komplexe Zeichenfolgen verarbeitet werden, bei denen reguläre Ausdrücke wirklich benötigt werden. Wenn die Textanalyse nach relativ einfachen Regeln durchgeführt wird, können Sie die Standardfunktionen von PHP verwenden, die die Verarbeitung erheblich beschleunigen. Alle diese Funktionen werden im Folgenden beschrieben.

    strtok()

    Die Funktion strtok() teilt die Zeichenfolge gemäß den durch den zweiten Parameter angegebenen Trennzeichen in Token auf. Die Syntax der Funktion strtok() lautet:

    string strtok (string string, string begrenzer)

    Die Funktion strtok() hat eine Kuriosität: 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 Zeichenfolgenparameter nur einmal festgelegt – die Funktion verfolgt die aktuelle Position in der Zeichenfolge, bis die Zeichenfolge vollständig in Tokens zerlegt oder ein neuer Zeichenfolgenparameter festgelegt ist. Das folgende Beispiel zeigt, wie eine Zeichenfolge auf mehrere Trennzeichen aufgeteilt wird:

    $info = "WJ Gi1more: [E-Mail geschützt]| Columbus, Ohio"; // Trennzeichen Doppelpunkt (:), Pipe (|) und Komma (.) $tokens = ":|,"; $tokenized = strtok($info, $tokens); // Array-Elemente drucken $ tokenized while ($tokenized) : echo "Element = $tokenized
    "; // Beachten Sie, dass bei nachfolgenden Aufrufen von strtok // das erste Argument nicht übergeben wird $tokenized = strtok($tokens); endwhile; Ergebnis: Element = WJGilmore Element = [E-Mail geschützt] Element = Kolumbus Element = Ohio

    parse_str()

    Die Funktion parse_str() extrahiert Paare in einem String und weist die Werte von Variablen im aktuellen Gültigkeitsbereich zu. Syntax der Funktion parse_str():

    void parse_str(string string)

    Die Funktion parse_str() ist besonders nützlich, wenn URLs geparst werden, die HTML-Formulardaten oder andere reichhaltige Informationen enthalten. Das folgende Beispiel analysiert Informationen, die über eine URL übergeben werden. Eine Zeichenfolge ist eine Standardmethode zum Übergeben von Daten zwischen Seiten, die entweder in einen Hyperlink kompiliert oder in ein HTML-Formular eingegeben werden:

    $url = "fname=wj&lname=gilmore&zip=43210"; parse_str($url); // Nach dem Ausführen von parse_str() 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 explode() zerlegt einen String in Elemente und gibt diese Elemente als Array zurück. Syntax der Funktion Explode():

    array explode(string begrenzer, string string[, int schwelle])

    Die Aufteilung erfolgt für jede Instanz des Trennzeichens, und die Anzahl der empfangenen Fragmente kann durch den optionalen Schwellenwertparameter begrenzt werden.

    Das Teilen eines Strings mit der Funktion explode() wird im folgenden Beispiel demonstriert:

    $info = "wilson | baseball | indianer"; $user = explode("|", $info); // $user = "Wilson"; // $user = "Baseball"; // $user = "Indianer";

    Die explode()-Funktion ist fast identisch mit der oben beschriebenen POSIX-Split()-Funktion für reguläre Ausdrücke. Der Hauptunterschied besteht darin, dass die Übergabe regulärer Ausdrücke als Parameter nur beim Aufruf von split() erlaubt ist.

    implodieren()

    Wenn die Funktion explode() einen String in Array-Elemente aufteilt, dann verkettet ihr Gegenstück, die Funktion implode(), das Array zu einem String. Die Syntax der Funktion implode() lautet:

    String implodieren (String-Trennzeichen, Array-Fragmente)

    Die Bildung 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 einer gegebenen Teilzeichenfolge in einer Zeichenfolge. Die Syntax der Funktion strpos() lautet:

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

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

    Das folgende Beispiel ermittelt die Position des ersten Auftretens eines Datums in einer 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"; // Wo erscheint 1999 erstmals in der Zeitschrift? $pos = strpos($log, "1999"); // $pos = 95. da die erste Instanz von "1999" // an Position 95 des Strings liegt, der in der $log-Variablen enthalten ist

    strpos()

    Die Funktion strrpos() findet das letzte Vorkommen eines bestimmten Zeichens in einer Zeichenfolge. Syntax der Funktion strrpos():

    int strpos (Zeichenfolge Zeichenfolge, Zeichen)

    Diese Funktion ist ihrem Gegenstück, der Funktion strpos(), in Bezug auf die Fähigkeiten unterlegen, da Sie nur nach einem einzelnen Zeichen und nicht nach der gesamten Zeichenfolge suchen können. Wenn ein String als zweiter Parameter an strrpos() übergeben wird, wird nur das erste Zeichen des Strings bei der Suche verwendet.

    str_replace()

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

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

    Die weiter unten in diesem Abschnitt beschriebene Funktion substr_replace() ermöglicht es Ihnen, nur einen bestimmten Teil einer Zeichenfolge zu ersetzen. Im Folgenden wird gezeigt, wie die Funktion str_replace() verwendet wird, um eine globale Ersetzung für einen String durchzuführen.

    Wenn die Teilzeichenfolge nie in der Zeichenfolge vorkommt, wird die ursprüngliche Zeichenfolge nicht geändert:

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

    strstr()

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

    string strstr (string string, string substring)

    Das folgende Beispiel verwendet die Funktion strstr(), 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 des Strings zurück, der an der angegebenen Startposition beginnt und die angegebene Länge hat. Die Syntax der Funktion substr() lautet:

    string substr (string string, int start[, int länge])

    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 der zurückgegebene Teilstring an der Position des Strings mit der angegebenen Nummer;
    • wenn der Startparameter negativ ist, beginnt der zurückgegebene Teilstring an Position (Stringlänge - Start);
    • Wenn der Längenparameter positiv ist, enthält die zurückgegebene Teilzeichenfolge alle Zeichen von Position Start bis Position Start+Länge. Wenn der letzte Wert größer als die Länge der Zeichenfolge ist, werden Zeichen bis zum Ende der Zeichenfolge zurückgegeben;
    • Wenn der Längenparameter negativ ist, endet der zurückgegebene Teilstring in der angegebenen Entfernung vom Ende des Strings.

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

    Das folgende Beispiel zeigt, wie Sie einen Teil einer Zeichenfolge mit der Funktion substr() extrahieren:

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

    Beispiel mit positivem Längenparameter:

    $car = "1944 Ford"; $model = substr($car, 0, 4); // $model = "1944" Beispiel für negative Länge: $car = "1944 Ford"; $model = substr($car, 2, -5); // $modell = "44"

    substr_count()

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

    substr_replace()

    Die Funktion substr_replace() ersetzt den Teil eines Strings, der an der angegebenen Position beginnt. Bei Angabe des optionalen Parameters length wird das Fragment der angegebenen Länge ersetzt; andernfalls wird die gesamte Länge der Ersetzungszeichenfolge ersetzt. Syntax der Funktion substr_replace():

    string substr_replace (string string, string ersetzen, int start[, int länge])

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

    • 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 das Fragment der gegebenen Länge ersetzt;
    • wenn der Längenparameter negativ ist, endet die Ersetzung an Position (Stringlänge - Länge).

    Eine einfache Textersetzung mit der Funktion 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); drucke $favs:

    Ergebnis:

    Alessias Lieblingslinks

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

    Das Konvertieren eines Strings oder einer ganzen Datei in ein Format, das für die Anzeige in einem Webbrowser (oder umgekehrt) geeignet ist, ist einfacher, als es auf den ersten Blick scheinen mag. In PHP gibt es dafür spezielle Funktionen.

    Konvertieren Sie Text in HTML

    Die schnelle Konvertierung von Klartext 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 Zeilenumbrüche (\n) durch ihre entsprechenden HTML-Konstrukte.

    Syntax der Funktion nl2br():

    Zeichenfolge nl2br (Zeichenfolge Zeichenfolge)

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

    // Im Editor angezeigter Textstring. $text_recipe = " Rezept für Partysoße: 1 Dose geschmorte Tomaten 3 Esslöffel frischer Zitronensaft Umrühren, kalt servieren."; // Zeilenumbrüche konvertieren in
    $htinl_recipe = nl2br($text_recipe) Beim anschließenden Drucken von $html_recipe wird folgender HTML-Text an den Browser übergeben: Party Sauce Rezept:
    1 Dose geschmorte Tomaten
    3 Esslöffel frischer Zitronensaft
    Zusammen rühren, kalt servieren.

    htmlentitäten()

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

    string htmlentities (string string)

    Das folgende Beispiel führt die erforderliche Ersetzung von Zeichen in einer Zeichenfolge zur Anzeige im 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 so konvertiert, wie Sie es erwarten würden.

    htmlspecialchars()

    Die Funktion htmlspecialchars() ersetzt einige Zeichen, die in einem HTML-Kontext eine besondere Bedeutung haben, durch ihre entsprechenden HTML-Konstrukte. Die Syntax der Funktion htmlspecialchars() lautet:

    Zeichenfolge htmlspecialchars (Zeichenfolge Zeichenfolge)

    Die Funktion html special chars() konvertiert derzeit die folgenden Zeichen: & wird in & umgewandelt; " " wird umgewandelt in "; wird umgewandelt in >.

    Insbesondere verhindert diese Funktion, dass Benutzer HTML-Markup in interaktive Webanwendungen (z. B. elektronische Foren) eingeben. Fehler im HTML-Markup können dazu führen, dass die gesamte Seite falsch dargestellt wird. Diese Aufgabe hat jedoch eine effizientere Lösung - die Tags mit der Funktion strip_tags() vollständig aus dem String zu entfernen.

    Das folgende Beispiel demonstriert das Entfernen potenziell gefährlicher Zeichen mit der Funktion htmlspeclalchars():

    $user_input = "Ich komme einfach nicht weiter von PHP & diesen fabelhaften Kochrezepten!"; $conv_input = htmlspecialchars($user_input); // $conv_input = "Ich kann einfach nicht<> von PHP & diese fabelhaften Kochrezepte!"

    Wenn htmlspecialchars() zusammen mit nl2br() verwendet wird, sollte letzteres nach htmlspecialchars() aufgerufen werden. Ansonsten Entwürfe
    die durch den Aufruf von nl2br() generiert werden, werden in sichtbare Zeichen umgewandelt.

    get_html_translation_table()

    Die Funktion get_html_translation_table() bietet eine bequeme Möglichkeit, Text in HTML-Äquivalente umzuwandeln. Die Syntax der Funktion get_htrril_translation_table() lautet:

    Zeichenfolge get_html_translation_table(int-Tabelle)

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

    Der Tabellenparameter nimmt einen von zwei Werten an:

    • HTML_ENTITIES;
    • HTML_SPECIALCHARS.

    Das folgende Beispiel verwendet die Funktion get_html_translation_table() beim Konvertieren von Text in HTML-Code:

    $string = "La pasta e il piatto piu amato in Italien"; $translate = get_html_translation_table(HTML_ENTITIES); print strtr($string, $translate); // Sonderzeichen werden in HTML-Konstrukte umgewandelt // und im Browser korrekt dargestellt.

    Übrigens erlaubt Ihnen die Funktion array_flip(), Text in umgekehrter Richtung in HTML umzuwandeln und den ursprünglichen Text wiederherzustellen. Angenommen, anstatt das Ergebnis von strtr() im vorherigen Beispiel auszugeben, haben wir es der Zeichenfolgenvariablen $translated zugewiesen.

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

    $übersetzen = array_flip($übersetzen); $translated_string - "La pasta é il piatto piú amato in Italien"; $original_string = strtr($translated_string, $translate); // $original_string = "La pasta e il piatto piu amato in Italien";

    strtr()

    Die Funktion strtr() übersetzt einen String, dh sie ersetzt alle Zeichen im Quellstring durch die entsprechenden Zeichen im Zielstring. Syntax der Funktion strtr():

    string strtr (string string, string source, string destination)

    Wenn die Quell- und Zielzeichenfolgen unterschiedliche Längen haben, wird die lange Zeichenfolge gekürzt, damit sie in die kurze Zeichenfolge passt.

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

    " => "

    ", "" => "

    "); $string = "

    Heute in PHP-betriebenen Nachrichten

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

    Konvertieren Sie HTML in einfachen Text

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

    strip_tags()

    Die Funktion strip_tags() entfernt alle HTML- und PHP-Tags aus einem String und lässt nur den Text darin. Die Syntax der Funktion strip_tags() lautet:

    Zeichenfolge strip_tags (Zeichenfolge Zeichenfolge [, Zeichenfolge zulässige_Tags])

    Mit dem optionalen Parameter „allowed_tags“ können Sie Tags angeben, die während des Entfernungsprozesses ignoriert werden sollen.

    Das Folgende ist ein Beispiel für das Entfernen aller Tags aus einer Zeichenfolge HTML-Funktion strip_tags():

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

    Im folgenden Beispiel werden nicht alle, sondern nur einige der Tags entfernt:

    $input = "Ich 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 Textumwandlung zusammenhängt, ist sie sehr 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 Suchen in einer Datei HTML-Tags META.

    META-Tags enthalten Informationen über eine Seite, die hauptsächlich von Suchmaschinen verwendet werden. Diese Tags befinden sich innerhalb des Tagspaars ... . Die Verwendung von META-Tags wird im folgenden Schnipsel demonstriert (nennen wir es example.html, weil es in Listing 8.2 verwendet wird): PHP-Rezepte Die Funktion get_meta_tags() sucht im Dokumentkopf nach Tags, die mit dem Wort META beginnen, und speichert die Tag-Namen und ihre Inhalte in einem assoziativen Array. Listing 8.2 zeigt, wie Sie diese Funktion auf die Datei example.html anwenden. Auflistung 8.2. Extrahieren von META-Tags aus HTML-Datei get_meta_tags()-Funktion

    $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[ "Beschreibung" ] = "PHP-Info" // $meta_tags["Autor"] = "KDG";

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

    String in Groß- und Kleinbuchstaben umwandeln

    PHP hat vier Funktionen, um die Groß-/Kleinschreibung eines Strings zu ändern:

    strtolower()

    Die Funktion strtolower() wandelt alle alphabetischen Zeichen eines Strings in Kleinbuchstaben um. Die Syntax für die Funktion strtolower() lautet:

    string strtolower(string string)

    Nicht-alphabetische Zeichen werden von der Funktion nicht modifiziert. Das Konvertieren eines Strings in Kleinbuchstaben durch die Funktion strtolower() wird im folgenden Beispiel gezeigt:

    $satz = "KOCHEN und PROGRAMMIEREN in PHP sind meine ZWEI Favoriten!"; $satz = strtolower($satz); // Nach dem Funktionsaufruf enthält $satz den String // "Kochen und Programmieren von PHP sind meine beiden Favoriten!"

    strtoupper()

    Strings können nicht nur nach low, sondern auch nach konvertiert werden Großbuchstaben. Die Konvertierung wird von der Funktion strtoupper() durchgeführt, die die folgende Syntax hat:

    string strtoupper (string string)

    Nicht-alphabetische Zeichen werden von der Funktion nicht modifiziert. Das Konvertieren eines Strings in Großbuchstaben durch die Funktion strtoupper() wird im folgenden Beispiel gezeigt:

    $sentence = "Kochen und Programmieren von PHP sind meine beiden Favoriten!"; $satz = strtoupper($satz); // Nach dem Funktionsaufruf enthält $satz den String // "COOKING AND PROGRAMMING PHP ARE MY TWO FAVORITE!"

    ucfirst()

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

    Zeichenfolge ucfirst (Zeichenfolge Zeichenfolge)

    Nicht-alphabetische Zeichen werden von der Funktion nicht modifiziert. Die Konvertierung des ersten Zeichens eines Strings durch die Funktion ucfirst() wird im folgenden Beispiel gezeigt:

    &sentence = "Kochen und Programmieren von PHP sind meine zwei Favoriten!"; $satz = ucfirst($satz); // Nach dem Funktionsaufruf enthält $satz den String // "Kochen und Programmieren von PHP sind meine zwei Favoriten!"

    ucwords()

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

    Zeichenfolge ucwords (Zeichenfolge Zeichenfolge")

    Nicht-alphabetische Zeichen werden von der Funktion nicht modifiziert. Ein "Wort" ist definiert als eine Folge von Zeichen, die durch Leerzeichen von anderen Elementen einer Zeichenfolge getrennt sind. Das folgende Beispiel demonstriert die Konvertierung der Anfangsbuchstaben von Wörtern mit der Funktion ucwords():

    $sentence = "Kochen und Programmieren von PHP sind meine beiden Favoriten!"; $satz = ucwords($satz); // Nach dem Funktionsaufruf enthält $satz den String // "Cooking And Programming PHP Are My Two Favorites!"

    strchr()

    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 der gesuchte String aus mehr als einem Zeichen besteht.

    Wenn das zweite Argument keine Zeichenfolge ist, wird es in eine Ganzzahl umgewandelt und als Zeichencode behandelt.

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

    Highlight_String()

    highlight_string - Syntaxhervorhebung der Zeichenfolge.

    gemischter Highlight_string (Zeichenfolge str[, bool return])

    Die Funktion highlight_string() gibt eine syntaxfarbene Version von str aus, wobei die Farben verwendet werden, die in PHPs eingebauter Syntaxhervorhebung definiert sind.

    Wenn der zweite Parameter von return TRUE ist, gibt highlight_string() die hervorgehobene Codeversion als String zurück, anstatt sie auszugeben. Wenn der zweite Parameter nicht TRUE ist, gibt highlight_string() bei Erfolg TRUE zurück, bei Misserfolg FALSE.

    Hinweis: 1. Der Rückgabeparameter ist seit PHP 4.2.0 verfügbar. Davor funktionierte es wie standardmäßig, d.h. FALSCH.
    2. Die Funktion Highlight_String() unterscheidet PHP-Code nach Tags. show_source()- Synonym Highlight_Datei(). Verwenden Sie die folgenden PHP-Anweisungen, um die standardmäßige Hervorhebungsfarbe zu ändern:

    Highlight.bg #FFFFFF Highlight.Kommentar #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")=="") ...

    fügt Wimpern hinzu ()

    - Maskiert Sonderzeichen in einer Zeichenfolge

    Gibt eine Zeichenfolge zurück, die jedem Sonderzeichen einen umgekehrten Schrägstrich (\) vorangestellt hat, um die Zeichenfolge beispielsweise später in einer Datenbankabfrage zu verwenden.

    Einfaches Anführungszeichen ("), doppeltes Anführungszeichen ("), umgekehrter Schrägstrich (\) und NUL (NULL-Byte) werden maskiert.

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

    Streifenwimpern

    - Entfernt Zeichen-Escapes, die von addlashes() erzeugt wurden. Entfernt Backslashes mit Escapezeichen. (\" wird in " umgewandelt usw.). Doppelte Backslashes (\\) werden in einfache Backslashes (\) umgewandelt.

    Zeilenumbruch()

    Umbricht eine Zeile mit der angegebenen Anzahl von Zeichen mit einem Zeilenumbruchzeichen // Using 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, die ich entworfen habe, war ganz natürlich perfekt, sie war ein Kunstwerk - makellos, erhaben. Ein Triumph, der nur ebenbürtig ist durch sein monumentales Scheitern. Die Unausweichlichkeit seines Untergangs ist mir jetzt als Folge der Unvollkommenheit, die jedem Menschen innewohnt, offensichtlich. Daher habe ich es auf der Grundlage Ihrer Geschichte neu gestaltet, um die unterschiedlichen Grotesken Ihrer Natur genauer widerzuspiegeln war erneut frustriert über das Scheitern.", 20);

    > Die erste Matrix, die ich > entwarf, war ganz > natürlich > perfekt, sie war ein > Kunstwerk > makellos, erhaben. > Ein Triumph > der nur von > seinem monumentalen > Misserfolg übertroffen wird. Die > Unvermeidbarkeit > ihres Untergangs > ist mir jetzt > als Folge > der > Unvollkommenheit >, die jedem > Menschen innewohnt, > ersichtlich. Daher > habe ich es > auf der Grundlage Ihrer > Geschichte > umgestaltet, um > die unterschiedlichen > Grotesken > Ihrer Natur besser > genauer widerzuspiegeln. > Allerdings war ich > wieder einmal > frustriert über > Misserfolg.


    Weiterlesen:

    Websites können in statische und dynamische unterteilt werden. Nachdem Sie HTML und CSS gemeistert haben, mit denen Sie eine schöne Visitenkarte im Internet erstellen können, denken viele Leute darüber nach, wie Sie eine dynamische Website in PHP erstellen können. Gleichzeitig sollte der Layouter berücksichtigen, dass er jetzt beginnt, Webprogrammierung zu lernen: Die Prinzipien der Arbeit mit der Site werden andere sein. Eines der ersten Probleme, mit denen ein Anfänger in PHP konfrontiert wird, ist die Arbeit mit Strings, das Lesen und Verarbeiten dieser.

    Es ist erwähnenswert, dass PHP eine große Anzahl von Methoden impliziert, daher sollten Sie sie mit den einfachsten Manipulationen lernen, wie z. Viele Funktionen funktionieren nicht gut mit kyrillischen Zeichen. Aus Gründen der Übersichtlichkeit sind daher alle Beispiele in englischer Sprache 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 in php.ini die Zeile extension=php_mbstring.dll auskommentieren, indem Sie einfach das Semikolon entfernen.

    String erstellen und ausgeben

    Wir analysieren die Ausgabe eines Strings auf dem Bildschirm mit dem bekannten Sprachkonstrukt echo. Der Programmierer kann den String sofort ausgeben:

    Echo "Dies ist eine neue Linie"

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

    $str = "Dies ist ein neuer String";

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

    echo "Das" . "Neu". " Linie";

    $str1 = "Dies";

    $str2 = "Neu";

    $str3 = "Zeichenkette";

    echo $str1 . $str2 . $str3;

    Im letzteren Fall wird der Bildschirm angezeigt ThisNewLine. Beim Aufruf von echo kann sofort ein Leerzeichen eingefügt werden:

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

    In diesem Fall zeigt der Bildschirm Folgendes an: „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 = "Zeichenkette";

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

    echo $string;

    Echo zeigt sowohl als auch Kyrillisch an. Wenn eine der Variablen eine Zahl enthielt, dann wird diese Zahl bei der Verkettung in den entsprechenden String umgewandelt:

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

    echo $i . "+" . $ ich . "=" . $summe;

    Auf dem Bildschirm wird angezeigt: „2 + 2 = 4“.

    Service-Symbole

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

    • \n macht einen Zeilenvorschub;
    • \r gibt eine Kutsche zurück;
    • \" maskiert doppelte Anführungszeichen:
      • echo "String mit \"doppelten\" Anführungszeichen"; //String mit "doppelten" Anführungszeichen
    • \$ entkommt Dollar;
    • \\ maskiert den umgekehrten Schrägstrich.

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

    So finden Sie die Position des ersten Vorkommens einer Teilzeichenfolge

    Nehmen wir an, wir haben eine einfache Zeile:

    Wir haben auch zwei Zeichenfolgen mit Namen:

    $name = "Yemelyan";

    $anotherName = "Katherine";

    Wir müssen wissen, ob die erste Zeile diese beiden Namen enthält. Dazu wird die Funktion strpos($str, $search) verwendet. Sie gibt die Position des gesuchten Teilstrings $search zurück, wenn dieser String im ursprünglichen $str enthalten ist. Andernfalls gibt die Funktion den booleschen Wert false zurück. Beispielsweise gibt strpos($string, $anotherName) false zurück, während strpos($string, $name) eine ganze Zahl zurückgibt. Der Code sieht so aus (wir schreiben eine Variante, 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 falsch aus

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

    Beachten Sie, dass die Zeilennummerierung bei Null beginnt, d. h. in unserem Fall zeigt die letzte Zeile die Nummer 11 (Leerzeichen werden ebenfalls gezählt).

    Ermitteln der Position des letzten Vorkommens einer Teilzeichenfolge und Fallstricke

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

    Hier gibt es einige Fallstricke, die mit dem Beginn der Nummerierung verbunden sind. Dies sollte berücksichtigt werden: PHP-Arbeit mit Zeichenfolgen kann durch Einschränkungen bei Vergleichen erschwert werden. Daher ist es besser, den negierten Vergleichsoperator nicht zu verwenden: strpos($str, $search)!=false. In jeder Version PHP-Beispiele mit einer solchen Äquivalenz funktioniert 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 finden Sie die Anzahl der Vorkommen einer Teilzeichenfolge

    Oft müssen Sie nicht die Position des ersten oder letzten Vorkommens einer Teilzeichenfolge in einer Zeichenfolge finden, sondern ihre Gesamtzahl. Dazu wird die Funktion substr_count() verwendet, die mindestens zwei Variablen verarbeitet: substr_count($str, $search). Gibt eine ganze Zahl zurück. Wenn es notwendig ist, den Suchbereich für einen String zu verkleinern, werden zwei weitere Variablen an die Funktion übergeben: der Anfang und das Ende des Strings. Das heißt, die Funktion wird in diesem Fall folgendermaßen aufgerufen: substr_count($str, $search, $start, $end). Die Funktion sucht nach dem Teilstring $search zwischen $start und $end des ursprünglichen Strings $str. Wenn die Zeichenfolge nicht gefunden wird, gibt die Funktion Null zurück.

    So ändern Sie die Groß-/Kleinschreibung eines Strings in PHP: Beispiele

    Groß-/Kleinschreibung wird oft verwendet, um Zeichenketten zu vergleichen, und sagen wir, der Benutzer muss den Namen des höchsten Gottes in eingeben. Das Programm hat eine Option "Eins", mit der die Antwort des Benutzers verglichen wird. Wenn der eingegebene Text nicht mit dem vorhandenen übereinstimmt (der Benutzer schreibt beispielsweise "one" oder "ONE"), gibt das Programm false statt true zurück. Um dies zu vermeiden, wird eine Fallwechselfunktion verwendet. Dies wird oft verwendet, wenn die PHP-Site Tags hat: Statt hunderter Variationen des Wortes "private" ("Privat", "private", "PERSONAL" usw.) gibt es nur ein Tag in Kleinbuchstaben.

    Die Funktion strtolower() ändert Groß- und Kleinschreibung. Nehmen wir an, es gibt einen String $catName = "Fluffy". Die Funktion strtolower($catName) gibt den String „fluffy“ zurück. Sie können die Groß-/Kleinschreibung mit der Funktion strtoupper() ändern.

    So ermitteln Sie die Länge eines Strings in PHP: Arbeiten mit Funktionen

    Oft möchten Sie die Länge einer Zeichenfolge ermitteln. Beispielsweise kann es in PHP erforderlich sein, mit Strings dieser Art zu arbeiten, um eine Schleife zu erstellen. Um nach einer Zeichenfolge zu suchen, wird die Funktion strlen() verwendet, die eine Zahl zurückgibt – die Anzahl der Zeichen. Wir dürfen nicht vergessen, dass das letzte Zeichen die Nummer strlen($str)-1 hat, da die Nummerierung bei Null beginnt.

    Abrufen und Ersetzen eines Teilstrings in PHP: Arbeiten mit Strings

    Das Abrufen einer Teilzeichenfolge erfolgt durch die Funktion substr(), die zwei oder drei Argumente annehmen kann: substr($str, $start, $end). Nehmen wir an, wir haben einen String $string = "Fluffy cat" und wir möchten den Teilstring vom zweiten bis zum vierten Zeichen erhalten. Da die Nummerierung bei Null beginnt, sieht die Variable mit diesem Teilstring so 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 vollständiger Code Zeichenfolgen mit strlen(): substr($string, 1, strlen($string)).

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

    $str = "Schreckliches Wetter heute!";

    $newStr = str_replace("schrecklich", "wunderbar", $str); //Heute ist das Wetter wunderbar!

    String in Zahl umwandeln

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

    Sowohl intval() als auch floatval() erfordern, dass der String mit Ziffern beginnt, die in eine Zahl umgewandelt werden. Wenn auf die Zahlen Buchstabenfolgen folgen, werden diese einfach ignoriert. Für den Fall, dass die Zeichenfolge mit Buchstaben beginnt, gibt die Verwendung der Funktion Null zurück. Idealerweise sollte der String nur Zahlen enthalten.

    Konvertieren einer Zahl in einen String

    Oft müssen Sie Zahlen in eine Zeichenfolge umwandeln. Nehmen wir an, Sie müssen eine halbe Zahl nehmen und quadrieren (prü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 anderen Aktionen mit einem neuen String ausführen: ändern, nach einem Vorkommen eines Teilstrings suchen und andere Funktionen. Bei Bedarf kann der String wie oben bereits beschrieben wieder in eine Zahl umgewandelt werden.

    In dem Artikel wurde nur ein kleiner Teil aller Funktionen im Zusammenhang mit Strings betrachtet. Einige der unbeschriebenen Funktionen arbeiten mit Symbolen, aber die meisten wurden aus Gründen der Spezifität nicht in das Material aufgenommen. Um sich mit diesen Funktionen vertraut zu machen, müssen Sie zur offiziellen PHP-Dokumentation gehen, die aktuelle Informationen enthält.