textdatei über php auslesen und als log datei speichern

tbopet

Grünschnabel
Hallo !

Leider bin ich ein Neuling auf dem Gebiet PHP, ich suche eine Möglichkeit eine
Textdatei auszulesen und dann gewisse Daten in eine Log Datei zu speichern.
Die Textdatei sieht folgendermaßen aus :
$GPRMC,160840.894,V,4142.4129,N,01040.3642,E,0.0,,100504,,*30
Ich möchte also "4142.4129,N,01040.3642,E" in eine Log Datei speichern.
Kann mir das jemand zeigen ?
Vielen Dank im voraus

tbopet
 
evtl mit explode?
PHP:
$zeile='$GPRMC,160840.894,V,4142.4129,N,01040.3642,E,0.0,,100504,,*30';
$temp_zeile=explode(',',$zeile); //danach hast du 11 Werte in einem Array(0-10)
$logfile_eintrag = $temp_zeile[3].','.$temp_zeile[4].','.$temp_zeile[5].','.$temp_zeile[6];
//$logfile_eintrag=4142.4129,N,01040.3642,E
 
Zuletzt bearbeitet:
Definiere deine Anfrage genauer bitte. Willst du gewisse Strings ersetzen oder Strings an die vorhanden anfügen?

Wenn es "nur" speichern ist dann folgendes:

PHP:
$string="$GPRMC,160840.894,V,4142.4129,N,01040.3642,E,0.0,,100504,,*30'";
$fp=@fopen("./logs/logcheck.log", "w") or die("Fehler bei der Übertragung");
fclose(fputs($fp, $string));

In diesem Sinne
 
Vielen Dank für Euer Bemühen !

Ich möchte es mal so darstellen, ich habe eine Textdatei namens test.txt, in dieser Datei stehen die Daten drin :
$GPRMC,160840.894,V,4142.4129,N,01040.3642,E,0.0,,100504,,*30';
Jetzt möchte ich über php ein File erzeugen, das folgende Daten :
"4142.4129,N,01040.3642,E"
In ein File schreibt: Namens test.log !
Mit dankenden Grüßen

tbopet
 
Wie wärs denn, wenn du dir die Posts von Kerwin und Krypthonas genauer anschaust?
Kombiniert man beide Codeschnippsel bezogen auf deine Problemstellung, so ergibt sich folgende Lösung:
PHP:
$zeile = '$GPRMC,160840.894,V,4142.4129,N,01040.3642,E,0.0,,100504,,*30'; //auslesen wird schon klappen oder?
$temp_zeile = explode(',', $zeile); //danach hast du 11 Werte in einem Array(0-10) 
$logfile_eintrag = $temp_zeile[3].','.$temp_zeile[4].','.$temp_zeile[5].','.$temp_zeile[6]; 
$fp = @fopen("test.log", "w") or die("Fehler bei der Übertragung"); 
fclose(fputs($fp, $logfile_eintrag));

Für den Umgang mit Dateien allgemein, kann ich dir nur das Tutorial in der entsprechenden Sektion empfehlen.
 
Pushen nach 2h ist einfach nur frech!

Die Funktionen, die zur Lösung Deines Problem benötigst sind (unter anderm):

--> [phpf]explode[/phpf]
--> [phpf]fopen[/phpf]
--> [phpf]fclose[/phpf]
--> [phpf]fputs[/phpf]


snuu
 
Ja Snuu !

Du hast völlig recht, ich konnte es halt kaum abwarten, aber wenn man eine Lösung sucht, ich denke Du kannst Dich da reinversetzten, dann macht man halt schon mal solche Sachen.
Ich muß mich jetzt leider selber um ein entsprechendes Script kümmern, um das ganze ausgereift darzustellen.
Mein Problem ist halt mich erst einmal in die Programmiersprache hineinzuversetzten und diese zu verstehen und das in möglichst kurzer Zeit.
Ohne Eure hilfe bin ich halt nun mal aufgeschmissen, aber ich denke mir wird geholfen und dafür bin ich sehr dankbar.

MfG tbopet
 
Der Lösungsvorschlag von ludz sollte Dir erst einmal weiterhelfen. Dennoch müsstest Du - und Du scheins ja auch gewillt zu sein - dich mit den verwendeten Funktionen beschäftigen, indem Du meinen Links folgst und Dich ein wenig beliest. Wenn Du weiterhin programmieren möchtest ist die Einarbeitung in die Grundlagen unabdingbar.

mfg, snuu
 
Soweit so gut

Vielen Dank Jungs für Eure Vorschläge!

Ich bin jetzt fast soweit wie ich wollte, doch ein kleines Problem habe ich noch, hier ist mein Script:

<?php
$fp = fopen("ng-andreas.txt","r");
$text = "";
while (!feof($fp)) {
$bla = fgets($fp,999);
$text .= $bla;
}
$temp_text = explode(',', $text);
$logfile_eintrag = ($temp_text[5]*1.0235974309739322302351193240018).','.($temp_text[3]*1.0065206099762954049773254385957);
$fp = @fopen("test.log", "w") or die("Fehler bei der Übertragung");
fclose(fputs($fp, $logfile_eintrag));
?>

In der test.log Datei steht dann folgendes drin:

1269.27345606,4780.01756674

Ich hätte aber gerne das die Punktstellen bei den beiden Ergebnissen jeweils so aussehen:

126927.345606,478001.756674

kann mir da jemand einen Tipp geben, mit Round habe ich es schon probiert,
geht aber nicht so wie ich es will.

Vorab vielen Dank

tbopet
 
Zurück