dk: Mit PHP in HTML schreiben

Moin Moin

gibt es die Möglichkeit aus einer PHP in eine andere HTML Datei zu schreiben und zwar genau an einer bestimmten stelle???

MfG Dennis

  1. Hallo Dennis,

    eine html datei ist ja nichts anderes als eine txt datei nur mit endung html. Vom Prinzi her kannst du in txt Dateien schreiben siehe http://de3.php.net/manual/de/function.fwrite.php und jetzt musst du dann nur noch den Dateizeiger an die Stelle in der Datei bringen wo du schreiben willst, dan geht das.

    oder du nimmst dir zuerst den ganzen Inhalt einer datei http://de3.php.net/manual/de/function.file.php und speicherst diesen in einer Variablen, dann kannst du mit php ja alles anstellen und dann wieder in die datei schreiben.

    Grüße
    --
    http://www.rechtsrat-jetzt.de

    Moin Moin

    gibt es die Möglichkeit aus einer PHP in eine andere HTML Datei zu schreiben und zwar genau an einer bestimmten stelle???

    MfG Dennis

    1. echo $begrüßung;

      gibt es die Möglichkeit aus einer PHP in eine andere HTML Datei zu schreiben und zwar genau an einer bestimmten stelle???

      eine html datei ist ja nichts anderes als eine txt datei nur mit endung html. Vom Prinzi her kannst du in txt Dateien schreiben siehe http://de3.php.net/manual/de/function.fwrite.php und jetzt musst du dann nur noch den Dateizeiger an die Stelle in der Datei bringen wo du schreiben willst, dan geht das.

      fwrite() plus Dateizeiger positionieren wird wahrscheinlich nicht zum Ziel führen, da man damit nur die bestehenden Bytes mit den neuen Bytes überschreibt. Solange das Einzufügende nicht genau gleichlang dem zu Überschreibenden ist, nützt dem OP diese Methode also nicht.

      oder du nimmst dir zuerst den ganzen Inhalt einer datei http://de3.php.net/manual/de/function.file.php und speicherst diesen in einer Variablen, dann kannst du mit php ja alles anstellen und dann wieder in die datei schreiben.

      file() liest die Datei zeilenweise in ein Array ein. Möchte man Zeilen ersetzen, ist das eine gute Methode. Möchte man aber Text ersetzen, der mitten in einer Zeile steht, über mehrere Zeilen geht und auch wieder mitten in einer Zeile endet, ist das mit file() auch nicht grade einfach zu erledigen.

      Die beste Methode für das Vorhaben lässt sich momentan noch nicht benennen, weil dazu eine konkretere Aufgabenstellung bekannt sein muss. Es kann sein, dass file_get_contents() plus Stringoperationen plus file_put_contents() anwendbar sind, es kann sein, dass (besonders bei großen Dateinen) zeilen- oder blockweises Einlesen, Bearbeiten und Wegschreiben nötig ist, oder ...

      P.S. Bitte vernünftig zitieren, so wie das die meisten hier tun, und kein TOFU posten, danke!

      echo "$verabschiedung $name";

      1. Die beste Methode für das Vorhaben lässt sich momentan noch nicht benennen, weil dazu eine konkretere Aufgabenstellung bekannt sein muss.

        Also ich muss nur genau in eine zeile schreiben und der Text der Standard mäßig dort steht soll überschrieben werden. Es ist nicht genau bekannt wie lang der Text ist aber es wird sich zwischen 4 bis 8 Zeichen  handeln. Der zu ersetzende Text wird auf jedenfall nicht die gleiche länge haben wie der neue Text.
        Ich hoffe das reicht an Infos ansonsten sagt mir bitte was ihr noch wissen müsst.

        MfG Dennis

        1. Lieber Dennis,

          Also ich muss nur genau in eine zeile schreiben und der Text der Standard mäßig dort steht soll überschrieben werden.

          dann ist die Array-Methode mit file() die Beste. Beispiel:

          $zeilennummer = 17; // Diese 17 betrifft die 18. Zeile, da immer bei Null mit dem Zählen begonnen wird.  
          $neuer_String = '12345678';  
          $pfad_zur_datei = './verzeichnis/daten.txt'; // von diesem Script aus ins Unterverzeichnis "verzeichnis" gehen...  
            
          // Dateiinhalt ins Array einlesen  
          $dateiinhalt = file($pfad_zur_datei);  
          // $dateiinhalt ist jetzt ein numerisches Array mit den Zeilen 0 - ...(Ende)  
          $dateiinhalt[$zeilennummer] = $neuer_String."\r\n"; // Zeile überschreiben; \r\n ist Windows-Zeilenende für Textdateien  
            
          // Datei zurückschreiben  
          $datei = fopen($pfad_zur_datei, 'wb+'); // Datei zum Schreiben geöffnet (ist jetzt leer!)  
          fputs($datei, implode('', $dateiinhalt)); // implode() wandelt Array zu String um  
          fclose($datei)
          

          Liebe Grüße aus Ellwangen,

          Felix Riesterer.

          1. [code lang=php]$zeilennummer = 17; // Diese 17 betrifft die 18. Zeile, da immer bei Null mit dem Zählen begonnen wird.

            Damit meinst du sicherlich die Zeilennummer im Quelltext, da in meiner html bzw. php datei arbeite ich mit Tabellen.

            Aber trotzdem schon mal Danke
            Mfg Dennis