Antworten auf deine Fragen:
Neues Thema erstellen

PHP in Textdatei schreiben

MasterT

Nicht mehr ganz neu hier

Hallo,
ich versuche nun seit mehreren Stunden umbrüche in eine Textdatei mit PHP zu schreiben, was leider nicht funktioniert.
PHP:
function writelog($text) {
    $datum = date("d.m.Y");
    $uhrzeit = date("H:i:s");

    
    $inhalt =  $uhrzeit.' - '.$datum.', Benutzer '.$_SESSION['username'].' '.$text;
        
    $datei = '_log/'.$datum.'.txt';
    
    
    $handler = file($datei);
        
    $fp = fopen($datei,"w");
    $string = $inhalt;  // das was du vorne ranschreiben willst
    foreach($handler as $line){
        $string .= $line."\r\n";
    }
    fputs($fp,$string); 
    fclose($fp);  
}

Hab ich was falsch gemacht?

Lg
 

G

Gryfin

Guest

AW: PHP in Textdatei schreiben

Probier es mal nur mit "\n"...
Wie sieht denn die Ausgabe aktuell aus?


Gruß
 
G

Gryfin

Guest

AW: PHP in Textdatei schreiben

Werden denn am Ende der Datei leere Zeilen eingefügt?
Wenn ja, probiere mal:

$string .= "\r\n".$line;
 

MasterT

Nicht mehr ganz neu hier

AW: PHP in Textdatei schreiben

Werden denn am Ende der Datei leere Zeilen eingefügt?
Wenn ja, probiere mal:

$string .= "\r\n".$line;

Ja hab ich gerade ausprobiert, aber nun passiert folgendes:
PHP:
20:05:59 - 26.03.2013, Benutzer Test hat den Lagerbestand des Artikel mit der Artikel-ID: 2002 von 6 auf 56 geändert.
20:05:45 - 26.03.2013, Benutzer Test hat den Lagerbestand des Artikel mit der Artikel-ID: 9603 von 53 auf 103 geändert.

20:05:25 - 26.03.2013, Benutzer Test hat den Lagerbestand des Artikel mit der Artikel-ID: 9055 von 1 auf 51 geändert.



20:05:19 - 26.03.2013, Benutzer Test hat den Lagerbestand des Artikel mit der Artikel-ID: 9603 von 3 auf 53 geändert.







20:05:00 - 26.03.2013, Benutzer Test hat den Lagerbestand des Artikel mit der Artikel-ID: 9555 von 130 auf 180 geändert.















20:04:53 - 26.03.2013, Benutzer Test hat den Lagerbestand des Artikel mit der Artikel-ID: 9544 von 170 auf 220 geändert.































20:04:47 - 26.03.2013, Benutzer Test hat den Lagerbestand des Artikel mit der Artikel-ID: 9603 von 190 auf 390 geändert.































































20:04:33 - 26.03.2013, Benutzer Test hat den Lagerbestand des Artikel mit der Artikel-ID: 111 von 201 auf 301 geändert.

Die Abstände der Einträge werden immer größer. Nun versteh ich gar nichts mehr :(
 
G

Gryfin

Guest

AW: PHP in Textdatei schreiben

Klar, Logikfehler.

$string = $inhalt."\r\n"; // das was du vorne ranschreiben willst
foreach($handler as $line){
$string .= $line;

Das sollte funktionieren.
 

Duddle

Posting-Frequenz: 14µHz

AW: PHP in Textdatei schreiben

Dein allererster Eintrag in der Datei ist "foo". Wenn beim nächsten Mal "bar" davor gespeichert werden soll, steht nach dem foreach in $string "barfoo\r\n". Offensichtlich willst du das nicht. Du musst also den Zeilenumbruch an $inhalt hängen, sonst klappt das nicht.

Weiterhin: wenn du mit file() eine Datei einliest, sind in den Array-Einträgen die Zeilenumbruchszeichen mit enthalten. Du hängst also im foreach überflüssige Umbrüche heran.

Edit: siehe Beitrag über mir.


Duddle
 

MasterT

Nicht mehr ganz neu hier

AW: PHP in Textdatei schreiben

Genau, Super! Noch einen Tipp wie ich die TXT in ein PHP Dokument include ohne das er es einfach ohne Bruch darstellt?
 
G

Gryfin

Guest

AW: PHP in Textdatei schreiben

Mit der Funktioin nl2br()...
nl2br($text);
Damit werden Umbrüche aus einem Textsting in HTML <br/>s umgewandelt.

Gruß
 
Zuletzt bearbeitet von einem Moderator:

MasterT

Nicht mehr ganz neu hier

AW: PHP in Textdatei schreiben

Vielen lieben dank Gryfin. Du gibst wirklich sehr gute und verständliche Hilfe. Viel dank :)

Leider geht es nicht mit nl2br.

PHP:
        $diedatei = '_log/'.$datum.'.txt';
        $op = readfile($diedatei);        
        echo nl2br($op);
Hab ich geschrieben und funktioniert nicht. Wird als ganzer Text ohne umbrüche angezeigt
 
G

Gryfin

Guest

AW: PHP in Textdatei schreiben

Gerne... Das freut mich. :)

So sollte es gehen:

$datei = "log.txt";
$handle = file($datei);
foreach($handle as $line) {
$content .= nl2br($line);
}
print($content);
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.635
Beiträge
1.538.450
Mitglieder
67.557
Neuestes Mitglied
Charal
Oben