PHP Laufschrift
-
Ok also habs nochmal überarbeitet, aber es funktioniert immernoch nicht. Irgendwie komme ich nie in die If-Anweisung, weil die Bedingungen nicht erfüllt sind.
Das einzige was ich mir vorstellen kann, wodran es liegt ist, dass er alles als Text einliest und denn halt der Vergleich als Zahl nicht funktioniert.while($zeile = fgets($fo2, 500)) { $daten = explode(" | ", $zeile); fputs($fo3, $zeile); if ($daten[2] <= $Monat && $daten[1] <= $Tag) { fputs($fo3, $copy3_str); } }
Gruß
-
Kann es sein, dass du den Index falsch zählst?! Müsste nicht Tag in 0 und Monat in 1 stehen?!
-
Hmm ok dummer Fehler von mir geb ich zu.
Jetzt ist hab ich aber das Problem, dass er nach der Zeile, die er eingefügt hat, keinen Zeilenumbruch macht. Wie kann ich den noch einfügen?
-
Ok habs jetzt gelöst. Danke für eure Hilfe. Aber jetzt nochmal zurück zum ursprünglichen Thema dieses Threads.
Was genau das Problem ist, habe ich ja vorher schon beschrieben und das ich mich eventuell etwas unklar ausgedrückt habe.
Also ich habe halt wie auch mit dem kopieren eine Datei, wo 4 Spalten drin sind und ca 30 Zeilen.
Jetzt wollte ich das in der Form eine Laufschrift machen.> daten[0] daten[1] daten[2] << | >> daten[0] daten[1] daten[2] << | >> usw.
Wobei in jedem von diesen Pfeilen jeweils die Daten aus einer Zeile stehen. Wie kann ich das umsetzen. Ich kann ja wie vorher eine Schleife verwenden. Weiter weiß ich aber nich.
MFG
-
Was genau ist denn dein Problem? Wenn du in einer Schleife die einzelnen Einträge mit explode zerlegt hast, musst du sie doch nur noch mit einem echo ausgeben? Und wenn er sich bewegen soll machst du einfach ein marquee außenrum...
-
Aber wenn ich das marquee in ein echo mit in die Schleife packe, wird doch bei jedem Durchlauf der Schleiße eine neue marquee angelegt oder?
Und ich brauch ja nur eine.
-
dann gib es doch einfach vor (<marquee>) bzw. nach (</marquee>) deiner Schleife aus...
-
Aso meinst du das.
OK Danke für die Hilfe auch wenn das eine Thema nicht in den Thread gehörte. Ohne euch wäre ich jetzt noch genauso dumm wie vorher!
MFG
-
das mit dem marquee hatte ich aber schon in meinem code drin den ich gepostet hatte^^
-
Sorry wenn ich den Thread nochmal aufgreifen muss aber ich hab noch ein Problem bei dem Einfügen in die Datei.
Also ich hab folgenden Code.while($zeile = fgets($fo2, 500)) { $daten = explode(" | ", $zeile); fputs($fo3, $zeile); if ($daten[1] <= $Monat) { if ($daten[0] <= $Tag) { fputs($fo3, $copy3_str); } } }
Und ich habe 2 Zeilen die wie folgt beginnen:
01 | 10 | ...
14 | 10 | ...
Und da soll jetzt nach der 14 folgendes eingefüt werde
20 | 10 | ...
Ich hab das denn in meine Masek eingegeben und das einfügen lassen.
Nur leider wurde das einmal nach der 01 und einmal nach der 14 eingefügt, was ja nach dem Code her auch völlig korrekt ist, aber ich wills nur einmal nach der 20 eingefügt haben.
Wie mache ich das?MFG
PS: Nochmal sorry
-
Versuche es mal irgendwie so (ungetestet)...
$inserted = false; while($zeile = fgets($fo2, 500)) { $daten = explode(" | ", $zeile); // Wenn es noch nicht eingefügt wurde und jetzt ein neueres Datum kommt, dann muss es hier eingefügt werden if( !$inserted && ( ($daten[1] > $Monat) || (($daten[1] == $Monat) && ($daten[0] >= $Tag)) ) ) { fputs($fo3, $copy3_str); $inserted = true; } fputs($fo3, $zeile); } // falls es hier noch nicht eingefügt wurde, dann gehört es ganz ans Ende if(!$inserted) { fputs($fo3, $copy3_str); $inserted = true; }
-
Hmm ne klappt nich wirklich. Er fügt überhaupt nichts ein. Also bleibt alles so wies is.
-
Sorry, hatte bei der Bedingung noch nen Fehler - versuch mal den obigen Code nochmal - hab ihn gerade nochmal korrigiert.
-
OK jetzt gehts danke!!!!