Verschieben von Daten in txt Dateien

orben

Mitglied
Ich möchte Daten zwischen 3 txt Dateien hinundher schicken. Ich probier mein Problem mal zu erklären: Ich möchte, dass nach einer Woche (oder einigen Tagen) der gesammte Datensatz aus txt 1 in txt 2 geht und aus txt 2 zu txt3 der Inhalt von txt 3 soll gelöscht werden.
txt Dateien erstellen, sie auszulesen und Daten reinzuladen ist kein Problem. Ich habe nur keine Ahnung wie ich es hinbekomme, dass 1. die Daten in die nächste txt rutschen und 2., dass dies nach einer bestimmten Zeit passiert? :confused:

Ich hätte noch eine weitere Frage: Für meine shoutbox möchte ich das jeder 10. Eintrag wieder gelöscht wird (also immer die 10. Zeile in der txt). Außerdem müssten immer alle Daten eine Zeile aufrücken sobald eine neue Zeile dazukommt. Wie mach ich das? :confused:
 
Hallo,
wenn du etwas in bestimmten Abständen immer wieder mal ausführen lassen willst, dann solltest du Cronjobs verwenden.
orben hat gesagt.:
Ich möchte, dass nach einer Woche (oder einigen Tagen) der gesammte Datensatz aus txt 1 in txt 2 geht und aus txt 2 zu txt3 der Inhalt von txt 3 soll gelöscht werden.
Warum bennst du text1.txt nicht in txt2.txt um und löscht text3.txt ist doch der gleiche effekt, oder?

[edit]
Mit folgendem Code sollte immer die zehnte Zeile einer *.txt Datei gelöscht werden.
PHP:
<?
  $file = file('test.txt');
  unset($file[9]);
 
  $text = implode('', $file);
 
  $datei = fopen('test.txt', 'w');
  fputs($datei, $text);
  fclose($datei);
?>
[/edit]

mfg
forsterm
 
Zuletzt bearbeitet:
Müsste man diese zeitliche Abfolge nicht auch mit php hinbekommen? Ich habe schon oft Uhren auf Internetseiten gesehen und die werden doch auch mit php programimert worden sein?
 
Das Ganze könnte auch ohne „crone job“ realisiert werden: Bei jedem Aufruf des Skriptes wird prüfen, wann die letzte Sicherung stattfand. Ist diese länger als X her, findet die Sicherung statt. Und falls die Textdatei drei nur einmalig angelegt/geändert wird, könnte dabei auch mit den Dateiänderungszeitpunkt (s. filemtime()-Funktion) gearbeitet werden.
Übrigens schließe ich mich Forsterms Vorschlag an, die Dateien einfach umzubenennen, anstatt mit den Dateiinhalten unnötig herumzujonglieren.
 
So bin gerade dabei den Aktualiesierer zu bauen. Nach längerem herumprobieren ist mir aufgefallen, dass ich einen Befehl benötige welcher Zeitdaten auf chronologische Weise überprüft (vergleicht). Gibt es einen Befehl welcher so aussieht:

PHP:
if ($datum1 liegt chronologischweiter zurück als $datum2) {  führe befehl aus

oder muss man das irgendwie umschreiben?
 
Zuletzt bearbeitet:
Du kannst doch ein Datum mit mktime(); in einen Timestamp umwandeln und nacher prüfen, was grösser ist.

PHP:
<?php
$timestamp1=mktime(12,43,00,02,10,2006);
//mktime im Format Stunden, Minuten, Sekunden,Monate, Tage,Jahr 
$timestamp2=mktime(12,43,00,02,10,2006);
if($timestamp2<$timestamp1)
{
echo "Datum 2 liegt chronologisch weiter zurück als Datum 1";
}
?>
 
Zuletzt bearbeitet:
Habe jetzt mal den bisherigen Code gepostet. Habe noch ein paar Fragen in den code als Kommentar geschrieben. Vorallem frage ich mich warum in Zeile 50 oder so änlich(ich habe sie gekenzeichnet) ein parse error auftritt?


PHP:
 <?php


$filename = 'daten/montag.txt'; //gibt es eine möglichkeit, dass er mehrere txts überprüft?

$control1 = date ("D");
$control2 = "Sun";
$control3 = mktime ("D, i, s,m,d,Y", filemtime($filename));
$control4 = mktime("control.txt");

if ($control1 == $control2)    {

       if ($control3 < $control4)  {  

$datei1='daten/montag.txt';
$datei2='daten/dienstag.txt';
$datei3='daten/mittwoch.txt';
$datei4='daten/donerstag.txt';
$datei5='daten/freitag.txt';

$datei11='daten/nextmontag.txt';
$datei22='daten/nextdienstag.txt';
$datei33='daten/nextmittwoch.txt';
$datei44='daten/nextdonerstag.txt';
$datei55='daten/nextfreitag.txt';


$datei_neu1='lastmontag.txt';
rename($datei1, $datei_neu1);

$datei_neu2='dienstag.txt';
rename($datei2, $datei_neu2);

// würde die umbenennung so funktionieren?



$datei = "control.txt"; 
    $datei_neu = fopen($datei,"w"); 
    fwrite($datei_neu, "
$control3

"); 
    fclose($datei); 

}
else     {   echo("nichts ausführen");
}

else        {       echo("es ist aktuell $control1 $control3 $control3 $control4"); // In dieser Zeile soll ein Fehler sein
}

?>
 
Ein Kontrollkonstrukt scheint nicht geschlossen zu werden. Denn eine if( … ) { … } else { … } else { … }-Syntax ist nicht erlaubt oder besser gesagt schlicht unlogisch.
 
Zurück