eddi: Zeilenumbruch in Datei schreiben.

Hallo,

ich schreibe Text in eine Datei weg.

  
  
$zeile1 = "Hallo, ich bins.\n";  
$zeile2 = "wie gehts denn so?";  
  
$fp = fopen('test.txt', w);  
  
fputs($fp, $zeile1);  
fputs($fp, $zeile2);  
  
$fclose($fp);  
  

In der Datei steht das \n als Text drinne und nicht als Zeilenumbruch.
Auch \r\n klappt nicht :(.

Wie gehts richtig?

Danke.

  1. Hi,

    $zeile1 = "Hallo, ich bins.\n";

    $zeile2 = "wie gehts denn so?";

    $fp = fopen('test.txt', w);

    fputs($fp, $zeile1);
    fputs($fp, $zeile2);

    $fclose($fp);

    
    >   
    > In der Datei steht das \n als Text drinne und nicht als Zeilenumbruch.  
      
    womit stellst du das fest? Stehen wirklich die Zeichen Backslash, kleines n drin (also 0x5C, 0x6E), oder betrachtest du den Dateiinhalt nur mit einem Tool, das Steuerzeichen wieder in ihrer Escape-Schreibweise anzeigt?  
      
    
    > Auch \r\n klappt nicht :(.  
    > Wie gehts richtig?  
      
    Genau so, wie du es oben gezeigt hast. Der Fehler muss noch woanders liegen.  
    Verwendest du vielleicht einfache Anführungszeichen anstatt der doppelten??  
      
    Ciao,  
     Martin  
    
    -- 
    Ich denke, also bin ich hier falsch.  
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    
    1. Verwendest du vielleicht einfache Anführungszeichen anstatt der doppelten??

      Ciao,
      Martin

      Danke, genau das Wars ...

  2. $fclose($fp);

    Wenn der Inhalt der Variablen "$fclose" nicht grade "fclose" ist, dann schießt du die Datei nicht.  
      
    MfG  
    bubble
    
    1. Wenn der Inhalt der Variablen "$fclose" nicht grade "fclose" ist, dann schießt du die Datei nicht.

      Sorry, das war nur hier, da hab ich in der Eile das $ hingeschrieben.

    2. Hallo,

      $fclose($fp);
      Wenn der Inhalt der Variablen "$fclose" nicht grade "fclose" ist, dann schießt du die Datei nicht.

      oops, ist mir gar nicht aufgefallen. Aber schießen muss man die auch nicht. ;-)
      Im Ernst: Am Script-Ende werden alle noch offenen Dateien vom PHP-Interpreter automatisch geschlossen. Es gehört zwar für einen ordentlichen Programmierer zum guten Ton, das selbst zu erledigen, aber das ist in PHP nicht unbedingt notwendig.

      Aber vielleicht handelt es sich an der Stelle auch um einen Copy&Paste-Fehler, wie ich ja auch schon einen vermutet habe - denn ansonsten müsste das Script IMO an der Stelle mit einer Fehlermeldung abbrechen.

      Ciao,
       Martin

      --
      Der Alptraum jedes Computers:
      "Mir war, als hätte ich gerade eine 2 gesehen."
      Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
      1. Im Ernst: Am Script-Ende werden alle noch offenen Dateien vom PHP-Interpreter automatisch geschlossen. Es gehört zwar für einen ordentlichen Programmierer zum guten Ton, das selbst zu erledigen, aber das ist in PHP nicht unbedingt notwendig.

        Kommt drauf an. Wenn es hier wirklich um Scripts geht die über einen Webserver laufen und der entsprechend konfiguriert ist nicht, wenn man jetzt aber den Script via CLI Wochen laufen hat (z.B. als irgendeinen Chatbot) kann sowas schon zum Problem werden.

        MfG
        bubble

        1. Hallo,

          deine Bedenken sind durchaus richtig (wenn du auch einen untypischen Fall annimmst). Aber ich schrieb absichtlich:

          Am Script-Ende ...

          Wenn das Script natürlich Ewigkeiten läuft, mag das vegessene Schließen durchaus zu Problemen führen.
          Das ist aber nicht das, was ich meinte.

          Kommt drauf an. Wenn es hier wirklich um Scripts geht die über einen Webserver laufen und der entsprechend konfiguriert ist nicht, wenn man jetzt aber den Script via CLI Wochen laufen hat (z.B. als irgendeinen Chatbot) kann sowas schon zum Problem werden.

          Ja. Davon bin ich aber hier nicht ausgegangen.

          Ciao,
           Martin

          --
          Ich habe gerade erfahren, dass Tante Frieda gestorben ist. Der Tod hat sie im Schlaf ereilt. - Schrecklich. Dann weiß sie es also noch gar nicht?
          Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
          1. Ja. Davon bin ich aber hier nicht ausgegangen.

            Ich auch nicht, wollts aber für den Fall der Fälle anmerken ;)

            MfG
            bubble