Datenfeld in Array einlesen (preg_match) ?


OrderMax

Grünschnabel
#1
Ich bin gerade dabei ein Blogsystem an meine Bedürfnisse anzupassen.
Leider fehlt dem Blog die Möglichkeit eigene Felder anzulegen.
Also möchte ich ein Texfeld dazu missbrauchen um die Daten dort einzugeben.

Der Inhalt des Feldes sieht in etwas so aus:
PHP:
Name: Kai Uwe
Alter: 29
Telefon: 0197-12321456
Jetzt würde ich gerne dieses Feld in ein Array schreiben um Zugriff auf die einzelne Daten zu haben.

PHP:
$feld[name] 
$feld[alter] 
$feld[telefon]
Ich hab es mit preg_match probiert, aber ich glaube die Regulären Ausdrücke und Schleifen verlangsanem das Script sehr.
Ich möchte das Schlüsselwort nicht extra festlegen um die Felder jederzeit erweitern zu können.
Das was vor dem Doppelpunkt steht, soll als Key genutzt werden und das nach dem Doppelpunkt als Wert.

Gibt es vielleicht eine einfachere Möglichkeit als preg_match?

LG
 

Sempervivum

Erfahrenes Mitglied
#2
Ich hab es mit preg_match probiert, aber ich glaube die Regulären Ausdrücke und Schleifen verlangsanem das Script sehr.
Ist das nur ein Vermutung oder hast Du das wirklich beobachtet? Ich hatte mal etwas Ähnliches und beides probiert, preg_match und selbst kodiertes Parsing und preg_match war schneller als das selbstgemachte.
Eine Alternative gibt es jedoch: Du kannst die Zeile mit explode() zerlegen und dann auf beide Bestandteile zugreifen.
 

OrderMax

Grünschnabel
#3
Ganz sicher bin ich mir nicht.
Das Script reagriert in moment etwas träge, kann aber auch an etwas anderem liegen. Die Idee mit explode() ist nicht schlecht und mir lieber als mich mit RegEx zu ägern ;-)
Danke für den Tipp, werde ich mal ausprobieren.
 

OrderMax

Grünschnabel
#6
So schaut aktuell meine Lösung aus:

PHP:
$zeile = explode("\n",$shorttext);
$feld = array();

foreach ($zeile as $line)
{
   $txt  = explode(":",$line);
   $wert = trim($txt[1]);

$feld[$txt[0]] = $wert;
}
 

Neue Beiträge