SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Fortgeschrittene CSS-Techniken

Fortgeschrittene CSS-Techniken zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten
Hilfe Community Kalender Heutige Beiträge Suchen

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 21.09.2002, 02:54:44
lululu
Guest
 
Beiträge: n/a
Warum überschreibt fopen(datei,"r+") alles?

Hi!
Ich hab ein Gästebuch Programmiert das über ne txt datei läuft. Nun wollte ich mal, dass er oben anfängt zu schrieben, damit die neuen Einträge immer oben sind und nicht unten wie bei "a".
Er schreibt es nun auch an den Anfang, aber überschreibt alles, was an der gleichen stelle mal war. Also, als wenn man Einfügen aktiviert hat und dann vor einem Wort anfängt zu schreiben.
Wie kann ich das ändern? Also, dass er mir nicht alles überschreibt?
Oder schlägt jemand ne andere Lösung vor?
Ich freue mich über alles*g*
THX
lululu
Mit Zitat antworten
  #2  
Alt 21.09.2002, 08:23:26
Ben20
Guest
 
Beiträge: n/a
Du kannst bei einer Datei nicht oben anfangen zu schreiben. Dafür gibts nur eine Lösung. Lese zuerst alle Zeilen in ein Array. Füge dann den neuen Eintrag als neues Feld in das Array ein. Drehe den Array rum (array_flip() ) und speichere den Array dann neu in der Datei (also alles überschreiben). Nur so kann man Daten am oberen Ende einer Datei einfügen.
Mit Zitat antworten
  #3  
Alt 21.09.2002, 10:28:17
newq newq ist offline
Anfänger
 
Registriert seit: Sep 2002
Ort: Wien
Alter: 40
Beiträge: 4
newq eine Nachricht über ICQ schicken
anderer lösungsansatz...

es gibt da noch eine möglichkeit das problem zu lösen. ist zwar nicht wirklich elegant, aber funktioniert.

PHP-Code:
$gbinhalt ="";
$fp fopen($datei"r") or die ('fehler beim öffnen der datei');
$gbinhalt fgetss($fp3000);
while (!
feof($fp)) { // zeilenweise den aktuellen inhalt der datei lesen
    
$gbinhalt .= fgetss($fp3000);
}
fclose($fp);

// jetzt ist in $gbinhalt alles was schon in der datei war
$fp fopen($datei"r+") or die ('fehler beim öffnen der datei');

// jetzt wird die datei mit dem neuen überschrieben
fwrite($fp"beispiel für deine eintraegen");
// ... war jetzt nur ein beispiel... hier tust du einfach rein, was wirklich eingetragen werden soll

// und jetzt wird der alte inhalt vom gb wieder angehängt
fwrite($fp$gbinhalt);
fclose($fp); 
ich habe selber gerade ein gästebuch geschrieben und das ganze damit gelöst. weil fgetss verwendet wird, werden auch alle html tags aus den einträgen entfernt. wenndu das nicht willst dann halt fgets.

ich hoffe das funktioniert und ich habe dir geholfen :)
Mit Zitat antworten
  #4  
Alt 21.09.2002, 12:27:20
Ben20
Guest
 
Beiträge: n/a
Genau so meinte ich das ja!
Mit Zitat antworten
  #5  
Alt 21.09.2002, 13:11:03
lululu
Guest
 
Beiträge: n/a
danke

Danke Leute, aber ich bin gestern auf nen anderen Lösungsweg gestoßen :
PHP-Code:
$pfad "gaestebuch.txt";
$dat fopen($pfad"r");
$alt fread($datfilesize($pfad));
fclose($dat);
$datei fopen($pfad"w");
fputs($datei$eintrag);
fclose($datei);
$datein fopen($pfad"a+");
fputs($datein$alt);
fclose($datein); 
Is zwar nicht sehr elegant, aber es Funktioniert super.*G*
Geht auch vereinfacht, aber so kann man wenigstens jeden Schritt nachvolziehen*g*
THX nochmal für eure Hilfe,
lululu
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:47:03 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt