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 
