file() funktioniert nicht zweimal in einer Datei
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
befehl
beitrag
date
datei
daten
eintrag
oberflche
rewind
schreiten
stehen
struktur
strukturiert updates
zeile
zurck
-
Hallo,
ich probiere mich gerade an einer möglichket mit einem script eine Newsdatei zu verwalten.
Diese ist so strukturiert:
Updates
News1
News2
News3
...
Nun soll man über diese Oberfläche News / Zeilen löschen
und News / zeilen hinzufügen können.
Wenn eine Zeile hinzugefügt wird, dann soll Sie immer in der dritten Zeile stehen.
Mein problem ist nun, dass ich den Befehl file() nur einmal benutzen kann:
?> <form action="news.php" method="POST"> <input type="text" size="25" name="news" value="<?php echo date("d").".".date("m").".".date("Y")." "; ?>"><input type="submit" value="Eintragen"><br> (Struktur: <?php echo date("d").".".date("m").".".date("Y")." Newstext"; ?>) </form> <br><br> <?php if($_GET['del']!="") { $dellines = file("../news.txt"); foreach($dellines as $dela => $delb) { if($dela != $_GET['del']) { $string.=$delb.""; } } unlink("../news.txt"); $datei = fopen("../news.txt","w+"); fwrite($datei, $string); fclose($datei); ?> <b>Eintrag gelöscht.<br> <a href="news.php">Zurück</a></b> <?php } elseif($_POST['news']!="") { $newlines = file("../news.txt"); foreach($newlines as $newa => $newb) { $string.=$newb.""; if($a=="1") { $string.=$_POST['news']."\n"; } } unlink("../news.txt"); $datei = fopen("../news.txt","w+"); fwrite($datei, $string); fclose($datei); ?> <b>Eintrag hinzugefügt.<br> <a href="news.php">Zurück</a></b> <?php } else { $lines = file("../news.txt"); echo "<table border=\"1\">"; foreach($lines as $a => $b) { if($a != "0" && $a != "1") { if($_GET['del']=="" && $_GET['del']!=$a) { echo "<tr><td>".$b."</td><td><a href=\"news.php?del=".$a."\">Löschen</a></td></tr>\n"; } } } echo"</table>"; }
Einen eintrag löschen kann ich, aber wenn ich einen hinzufügen will, dann gibt er zwar "Eintrag hinzugefügt." aus, aber er macht nichts. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hi,
wieso löschst du immer die Datei? Du könntest ja alles in einem Schritt erledigen.
Ausserdem empfehle ich flock() zu verwenden (-> http://php.net/flock):
<?php $datei = '../news.txt'; if (($fp = fopen($datei,'r+')) !== false) { flock($fp,LOCK_EX); $data = ''; while (!feof($fp)) $data .= fread($fp,1024); $data = explode("\n",$data); // evtnl. \r\n durch \n ersetzen // Daten manipuliren ... if (rewind($fp)) fwrite($fp,$data); flock($fp,LOCK_UN); fclose($fp); } ?>
(Nicht getestet)
mfg,
hr
Beitrag geändert: 18.7.2007 15:14:53 von heavyraptor -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage