Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Knifflig: Erstes vorkommen einer Zahl aus einer Datei lesen und in Variable speichern?





Frage

Hallo, ich habe ein kniffliges Problem: Auf meinen Server leigt eine Datei derren Inhalt sich ständig ändert (aber der Aufbau bleibt gleich). Nun möchte ich mit PHP gerne das erste auftreten einer Zahl in der Datei erkennen und diese Zahl in eine Variable speichern. So sieht die Datei z.B. aus: [code]Erste Zeile blabla ------ 1.2.5 14.12.2005 * Test2 weitere Zeilen und evtl. nochmal 1.1.5 1.1.2005 * Test1 EOF[/code] Ist als Textdatei text.txt auf dem Server gespeichert. Ich will die Zahlengruppe "1.2.5" in eine Variable speichern, bekomme es aber nicht hin. Habe es bis jetzt so versucht: [code]//alles ab 1.2.5 14.12.2005 * Test2... wird in Variable gespeichert: $teil1 = stristr(file_get_contents("text.txt"), "1"); //alles ab den ersten Leerzeichen nach 1.2.5 wird in Variable gespeichert: $teil2 = stristr($teil1, " ");[/code] Jetzt fehlt mir aber eine Funktion, die den Unterschied in den beiden Strings erkennt und mir diesen in eine Variable speichern kann. Außerdem gefällt mir nicht, dass ich nach der "1" suche. Zwar wird in nächster Zeit die erste Zahlen gruppe immer mit "1" anfangen, aber wenn sich das ma ländert muss ich wieder ran (aber wenn es sich nicht anders lösen lässt, ist es auch erstmal ok). Das Leerzeichen nach der Zahlengruppe wird aber bestehen bleiben. Oder kennt jemand einen ganz anderen Weg die erste Zahlengruppe aus der Datei zu bekommen? Vielen Dank schonmal [i]<gruß thj>[/i]

Antwort 1 von stefanix

Hi,
ich hab zwar keine Ahnung von PHP, aber unter Perl würde man sowas mit regulären Ausdrücken machen. Kurz gegoogelt:

http://tut.php-q.net/regex.html#u5

PHP unterstützt auch regex, so wie es aussieht!

Grüsse, Stefan

Antwort 2 von disco

moin

wenn du mit den regulären ausdrücken nicht klarkommst, könnten dir substr und strpos weiterhelfen:
http://de2.php.net/manual/de/function.substr.php
http://de2.php.net/manual/de/function.strpos.php

g,
disco

Antwort 3 von TheHappyJoker

Hallo,

danke, habe es jetzt so gelöst:

$file = stristr(file_get_contents("text.txt"), "1");
$pos = strpos($file, " ");
$content = substr($file, 0, $pos);


$content enthält dann die gesuchte Zahlengruppe. Eigentlich ganz einfach, stand wohl heut nur etwas auf dem Schlauch. *g*

Es mit regex zu machen war auch mein erster Gedanke. Aber ich weiß ja nicht wonach ich suchen soll. Das ginge vielleicht noch zu lösen, da die Zahlengruppe ja mit 1 beginnt und vor dem nächsten Leerzeichen endet. Die Problematik ist nur, dass es dann auch noch mehrere Treffer geben würde. Lässt sich auch noch beheben, aber der Code würde glaube ich meinen größer als mein obiger werden.

<gruß thj>

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: