1. Dashboard
  2. Artikel
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. HTML - Webmaster Forum
  2. Programmierung - Entwickler Forum
  3. PHP Forum - Apache - CGI - Perl - JavaScript und Co.

Cursor setzen

  • anspiUCNapufn9
  • 8. Mai 2007 um 13:49
  • anspiUCNapufn9
    Profi
    Beiträge
    584
    • 8. Mai 2007 um 13:49
    • #1

    Hallo, ahbe den folgenden Code:

    PHP
    <?php
        if(isset($eintragen)){
        	$datei=fopen ("news.txt","w");
             $eintrag = ereg_replace("\n","
    ",$eintrag);
             $eintrag = stripslashes($eintrag);
             $daten = "$eintrag";
             fwrite($datei,$eintrag)    ;
             fclose ($datei);}
        if(file_exists("news.txt")){
        	readfile("news.txt");
           }
        else {
        	echo ("Nichts vorhanden");
             }
    
    
    
    
    
    
    
    
    
    
    ?>
    Alles anzeigen

    Somit setzt er den $eintragimmer ans ende der Datei. Wie erreiche ich es, dass er den neu geschriebenen $eintrag an den Anfang der Datei setzt? Habe schon die Modi w und r+ probiert aber das hat nix gebracht.

    LG

  • she3p
    Teeny
    Beiträge
    45
    • 8. Mai 2007 um 14:16
    • #2

    PHP-Manual

    Zitat

    w+ "Öffnet die Datei zum Lesen und Schreiben und setzt den Dateizeiger auf den Anfang der Datei sowie die Länge der Datei auf 0 Byte. Wenn die Datei nicht existiert, wird versucht sie anzulegen."

    Also hätte es eigentlich mit "w" zum lesen reichen sollen ..

    OS: Ubuntu 7.04
    .ccc

  • anspiUCNapufn9
    Profi
    Beiträge
    584
    • 8. Mai 2007 um 14:29
    • #3

    wenn ich "w" einsetzte überschreibt er immer alles, es wird also nur der aktuellste eintrag gespeichert, w+ bringt auch nichts !

  • anspiUCNapufn9
    Profi
    Beiträge
    584
    • 8. Mai 2007 um 14:37
    • #4

    also beide w-attribute überschreiben, was ja auch nich verwunderlich is...

    Zitat


    die Länge der Datei auf 0 Byte

    ich suche jedoch nach einer lösung die den $eintrag an den Anfang der Datei schreibt und den Rest der Datei beibehält, z.B. r+, aber da kommt diese Fehlermeldung, die ich nich verstehe

    Zitat


    Warning: fopen(news.txt) [function.fopen]: failed to open stream: Datei oder Verzeichnis nicht gefunden in /usr/export/www/hosting/solo/Eike/news.php on line 26

    Warning: fwrite(): supplied argument is not a valid stream resource in /usr/export/www/hosting/solo/Eike/news.php on line 30

    Warning: fclose(): supplied argument is not a valid stream resource in /usr/export/www/hosting/solo/Eike/news.php on line 31
    Momentan sind keine News vorhanden.

    Vllt liegt der Fehler in meinem Code? ich find nix...

    LG

  • she3p
    Teeny
    Beiträge
    45
    • 8. Mai 2007 um 15:59
    • #5

    -.-' stimmt, w/w+ wird nichts nützen, sorry!

    Frage: Existiert bei "r+" das file news.txt schon? Wenn nein, einfach eine leere Textdatei mit dem Namen "news.txt" erstellen.
    Dann sollte es eigentlich funktionieren.

    OS: Ubuntu 7.04
    .ccc

  • anspiUCNapufn9
    Profi
    Beiträge
    584
    • 8. Mai 2007 um 20:00
    • #6

    Hi, schonmal danke, aber bei "r+" wird die Datei jedesmal überschrieben (bzw. geleert und neu beschrieben)

    LG

  • she3p
    Teeny
    Beiträge
    45
    • 8. Mai 2007 um 21:05
    • #7

    Ich nehm allerdings nicht an, dass das an "r+" liegt, denn wenn du hier guckst, siehst du, dass ich "a+" verwende.
    Im PHP-Manual steht zwischen r+ & a+ kein Unterschied, ausser die Cursorposition (Anfang/Ende). Und mein Script funktioniert soweit.
    Ich schätze es liegt an einem anderen Problem. Poste doch mal deinen Code.

    Im übrigen würde ich dir zu Datenbanken raten, die sind nicht so schwer zu bedienen, oder aber pro News eine txt anlegen.

    OS: Ubuntu 7.04
    .ccc

  • anspiUCNapufn9
    Profi
    Beiträge
    584
    • 9. Mai 2007 um 06:56
    • #8

    Eingabe:

    Code
    <form action="news.php" method="post">
    <textarea  name="eintrag" rows="20" cols="60"><div style="border: 1px dashed; width: 500px;" ><div style="margin-left:10px; margin-right:10px"><div align="left">Datum & Titel</div><div align="left"><hr>Inhalt</div></div></div>
    </textarea>
    
    
    <input type="submit" value="Eintragen" name="eintragen">
    </form>

    Ausgabe

    PHP
    <?php
        if(isset($eintragen)){
        	$datei=fopen ("news.txt","r+");
             $eintrag = ereg_replace("\n","
    ",$eintrag);
             $eintrag = stripslashes($eintrag);
             $daten = "$eintrag";
             fwrite($datei,$eintrag)    ;
             fclose ($datei);}
        if(file_exists("news.txt")){
        	readfile("news.txt");
           }
        else {
        	echo ("Momentan sind keine News vorhanden.");
             }
    
    
    
    
    
    
    
    
    
    
    ?>
    Alles anzeigen

    Das Attribut welches net funktionieren will steht in der Ausgabe in Zeile 3, momentan "r+" .

    LG

  • anspiUCNapufn9
    Profi
    Beiträge
    584
    • 9. Mai 2007 um 18:32
    • #9

    Hilft das weiter?

    LG

  • anspiUCNapufn9
    Profi
    Beiträge
    584
    • 10. Mai 2007 um 15:50
    • #10

    Habe mir gedacht, die Datei nun zuerst zu öffnen, den Inhalt auszulesen, in einen String zu schreiben, und dann mit dem Verkettungsoperator "." eintrag und vorhandenen-Text zusammen in die Datei zu schreiben. Aber das geht net soo ganz wie ich dachte, wie würdet ihr das anstellen?

    LG

  • anspiUCNapufn9
    Profi
    Beiträge
    584
    • 10. Mai 2007 um 17:08
    • #11

    Evtl so:

    Code
    if(isset($eintragen)){
             $datei=fopen ("news.txt","a");
    	$datei=fread(fp,max);
    	$inhalt=$datei;
    	$daten=$eintrag.$inhalt;
    	fwrite ($datei,$daten);
    	fclose (datei);}
        if(file_exists("news.txt")){
        	readfile("news.txt");
           }

    ??

    LG

Tags

  • forum
  • hilfe
  • www
  • http
  • file
  • news
  • problem
  • code
  • php
  • datei
  • daten
  • script
  • cursor
  • byte
  • datenbanken
  • existiert
  • isset
  • modi
  • name
  • fopen
  • namen

Benutzer online in diesem Thema

  • 1 Besucher
  1. Datenschutzerklärung
  2. Impressum
Community-Software: WoltLab Suite™
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
Zitat speichern