Jürgen G.: Html Datei mit php erweitern

Hallo,

ich bin am verzweifeln. Um folgendes gehts:

Es besteht eine html Datei die am Ende "<br>" stehen hat. Nun möchte ich davor eine Kilometerzahl einfügen. Es ist sichergestellt dass die letzten Zeichen "<br>" sind.

So hatte ich es vor:

$datei = fopen("daten/".$datum.".html", "a+"); //Datei öffnen, Courser auf ende

$km_benoetigt = $km_alt-$km_neu;

fseek($datei,4,SEEK_END);

fwrite($datei, $km_benoetigt);

fclose($datei);

Mein Problem: Die Kilometer werden nicht vor das BR sondern dahinter gesetzt wird.

Wo ist der Fehler?

Danke für die Hilfe

akzeptierte Antworten

  1. Hi,

    Es besteht eine html Datei die am Ende "<br>" stehen hat. Nun möchte ich davor eine Kilometerzahl einfügen. Es ist sichergestellt dass die letzten Zeichen "<br>" sind.

    da melde ich mal leise Zweifel an. Nach meiner eigenen Erfahrung enden solche Quelldateien in den allermeisten Fällen mit einem Zeilenumbruch, also CR+LF, oder auch nur LF, je nach Plattform. Außerdem wäre eine HTML-Datei, die mit "<br>" endet, hochgradig unsauber, denn danach sollten zumindest noch die schließenden Tags </body> und </html> folgen.

    $datei = fopen("daten/".$datum.".html", "a+");	//Datei öffnen, Courser auf ende
    $km_benoetigt = $km_alt-$km_neu;
    fseek($datei,4,SEEK_END);
    fwrite($datei, $km_benoetigt);
    fclose($datei);
    
    

    Du hast mindestens vergessen, das "<br>" wieder dahinter zu schreiben.

    Die Kilometer werden nicht vor das BR sondern dahinter gesetzt wird.

    Vermutlich stimmt eben deine Annahme nicht, dass die Zeichen "<br>" wirklich am Dateiende sind.

    So long,
     Martin

  2. Liebe Mitdenker, liebe Wissende, liebe Neugierige,

    ich bin am verzweifeln.

    Ruhig Brauner, wir packen das schon ;-P

    Um folgendes gehts:

    Es besteht eine html Datei die am Ende "<br>" stehen hat. Nun möchte ich davor eine Kilometerzahl einfügen. Es ist sichergestellt dass die letzten Zeichen "<br>" sind.

    So hatte ich es vor:

    $datei = fopen("daten/".$datum.".html", "a+"); //Datei öffnen, Courser auf ende

    Der eine Fehler steckt im Öffnungsmodus der Datei. Bei "a+" kann man den Curser zwar zum Lesen an jede Stelle der Datei bewegen, aber sowie man schreibt, wird er vorher hinter das aktuelle Ende der Datei gestellt. Früher hatte PHP hier mal einen Fehler, der ist aber behoben.

    Der zweite Fehler ist die Vorgehensweise an sich. Die Datei im Speicher ist doch ein String. Da kann man <br> abschneiden hinten, den Text anfügen und dann <br> wieder anfügen.

    Der Dritte Fehler ist, dass die Datei vor dem [Lesen und Schreiben] nicht exclusiv gesperrt wird.

    Spirituelle Grüße
    Euer Robert
    robert.r@online.de

    --
    Möge der wahre Forumsgeist ewig leben!
    1. ES FUNKTIONIERT!!!! DANKE!!!!

      Außerdem wäre eine HTML-Datei, die mit „<br>“ endet, hochgradig unsauber, denn danach sollten zumindest noch die schließenden Tags </body> und </html> folgen.

      Richtig! Die html-Datei wird nacher eingebunden. Somit ist die Seite ordnungsgemäss aufgebaut. Außerdem wird die Seite nur lokal benutzt. Ist deshalb auch nicht so schlim wenns nicht ordentlich programmiert ist.

      Zur Lösung:

      $datei = fopen(„daten/“.$datum.“.html“, „r+“); //Datei öffnen, Courser auf ende

      fseek($datei,-4,SEEK_END);

      Nochmals danke!