Zum Inhalt springen

PHP: Mit regex Variablen aus Textdatei parsen und in Array überführen

Erstellt am 18. Juli 2008 · 1 Antwort · letzte Antwort am 19. Juli 2008

Tags: PHP, Frage

hoppingwallaby ·

Hallo Forum,

eine kurze Frage zum Thema PHP:

Ich habe eine externe Textdatei (aus einem CGI-Parser kommend), deren Inhalt wie folgt aussieht:

$variable1 = "erster Text"
$anderevariable = "zweiter Text"
...

Diese Datei habe ich bereits via PHP eingelesen und der gesamte Dateiinhalt steht als String in einem Array zur Verfügung.

Diesen String würde ich nun gerne parsen und die einzelnen Variablen in ein Array überführen. Dieses sollte dann in etwa so o.ä. aussehen:

Array
(
[0] => Array
(
[variable] => variable1
[content] => erster Text
)

)

Ich denke man müsste die ganze Geschichte über regex und preg_match_all oder einer ähnlichen Konstruktion angehen. Hat zufällig jemand eine Idee, wie das funktionieren könnte? Ich krieg es leider einfach nicht hin...

Vielen Dank für jede Hilfe!

typo3tester ·

Wenn ich richtig verstehe, wie die Datei aufgebaut ist und was Dein Ziel ist,
dann könnte das so aussehen:

#Öffne Die Datei, die geparst werden soll
$fh= fopen("testarray.txt","r");
$deinarray=array(); 
$counter =0;
#Durchlaufe mit einer Schleife jede Zeile
while($input = fgets($fh, 1024))
{    
     //Hole die beiden Strings für Variable und Wert 
     //vor und nach Istgleich-Zeichen können 1 oder mehrere Leerzeichen stehen
     preg_match("°\\\$(.*)\s{0,1}=\s{0,1}\\\"(.*)\\\"°",$input,$find);       
     $variable = $find[1];
     $content  = $find[2];
     
     $deinarray[$counter]["variable"]=  $variable;
     $deinarray[$counter]["content"]=  $content;  
     //Setze den Zeilen-Zähler hoch
     $counter++;
          
}

Gruß, Regina