Kennt jemand eine schnelle und einfache Funktion explode()
like, die Teilerzeichen ignorieren kann, die in einem Paar beliebiger Zeichen eingeschlossen sind (z. B. Anführungszeichen)?
Beispiel:
%Vor%sollte zu einem Array mit den folgenden Elementen führen:
%Vor%Die Tatsache, dass die Zeichen in einfache Anführungszeichen eingeschlossen sind, würde sie davor bewahren, Splitter zu sein.
Bonuspunkte für eine Lösung, die mit zwei Wrapper-Zeichen umgehen kann
%Vor%Eine native PHP-Lösung wäre vorzuziehen, aber ich glaube nicht, dass so etwas existiert!
str_getcsv
($str, '/')
Auf der verlinkten Seite gibt es ein Rezept für & lt; 5.3.
Das ist mit preg_split
fast unmöglich, weil Sie nicht aus der Mitte der Zeichenkette unterscheiden können, ob Sie zwischen Anführungszeichen stehen oder nicht. % Co_de% kann jedoch den Job erledigen.
Einfache Lösung für eine einzige Art von Angebot:
%Vor%Diese Funktion wird alle Arten von Problemen haben, wenn Sie bestimmte Sonderzeichen (\ ^ -] übergeben, laut Ссылка ), also musst du denen entkommen. Hier ist eine allgemeine Lösung, die spezielle Regex-Zeichen entzieht und mehrere Arten von Anführungszeichen separat verfolgen kann:
%Vor%(Beachten Sie, dass ich alle Variablen zwischen eckigen Klammern aufbewahre, um zu minimieren, was zu entkommen ist - außerhalb von eckigen Klammern gibt es etwa doppelt so viele Sonderzeichen.)
Wenn Sie] als Zitat verwenden wollten, dann wollten Sie wahrscheinlich [als entsprechendes Zitat verwenden, aber ich werde diese Funktionalität als Übung für den Leser hinzufügen. :)