Text Datei Auslesen mit preg_match_all

M4URIC3

Grünschnabel
Hallo,
ich wollte einen Code machen, der von einer .txt-Datei die Einträge ausliest und anzeigt.

In der core.txt Datei
Code:
define("TEXT1", "Text 1");
define("TEXT2", "Text 2");
define("TEXT3", "Text 3");
define("TEXT4", "Text 4");

Der Auslese Code sieht so aus:
PHP:
<?php
$text = file_get_contents("core.txt");

preg_match_all('define(\"(.*?)\", \"(.*?)\");', $text, $treffer);

foreach ($treffer as $val) {
echo $val[0] . " => " . $val[1];
}
?>

Leider funktioniert das nicht. Hat da jemand eine Idee wie man das machen kann? Vielleicht gibt es auch einen besseren weg?

Das Ergebnis soll so sein:
TEXT1 => Text 1
TEXT2 => Text 2
TEXT3 => Text 3
TEXT4 => Text 4

MFG,
M4URIC3
 
Zuletzt bearbeitet:
1) Du hast Delimeter vergessen
2) Du hast die Klammern nichts escapet
3) Du hast die falschen Array Indizes verwendet, generell geht das mit foreach nicht

PHP:
<?php
$text = file_get_contents('core.txt');
preg_match_all('/define\("(.*?)", "(.*?)"\);/', $text, $treffer);
for( $i = 0; $i < sizeof($treffer[1]); $i++ )
  echo $treffer[1][$i]. ' => ' . $treffer[2][$i];
}
?>
 
Warum speicherst du die Daten nicht mit
PHP:
serialize()
http://de.php.net/manual/de/function.serialize.php
Das hat den Vorteil das du dich nicht um das Parsen kümmern musst.
Als nettes Beispiel würde ich dir diese Tutorial empfehlen:
http://www.tutorials.de/content/1224-simplen-cache-mit-php-erstellen.html
auch wenn es in dem Tutorial um Caching geht, spricht der Autor das Problem des Speicherns von Daten in einer localen Datei an.

Mit feundlichen Grüßem
Leon Bergmann
 
Danke für die Hilfe,
der Code von timestamp hat sofort funktioniert :)

Da hat zwar eine Klammer gefehlt, aber das passt :)

PHP:
<?php 
$text = file_get_contents('core.txt'); 
preg_match_all('/define\("(.*?)", "(.*?)"\);/', $text, $treffer); 
for( $i = 0; $i < sizeof($treffer[1]); $i++ ) { // Hier fehlte eine Klammer
  echo $treffer[1][$i]. ' => ' . $treffer[2][$i];
} 
?>
 
Upps, das kommt schonmal vor, wenn man hier im Forum programmiert.
Ich hoffe du hast dir noch die anderen Beiträge durchgelesen, vielleicht passen die ja besser auf dein Problem.
 
Zurück