fgets()

thomy800

Erfahrenes Mitglied
Hi

Ich habe ein kleines Programm geschrieben, was die ASCII-Zeichen aus einer Datei einliest:

PHP:
$fp=fopen($pfad,"r");
if($fp) {
      while($text=fgets($fp)) {
            ....
      }
}

Allerdings ist mir dabei aufgefallen, dass wenn in der Datei ein Zeilenumbruch steht, in $text am ende 2 sinnlose Zeichen stehen (ich vermute mal es sind Leerzeichen, werden zumindest so dargestellt).
Hab mir das mal ausgeben lassen: a-b-c- - - (jedes "-" deutet ein neues Zeichen an)
Mir ist auch aufgefallen, dass am Ende der Datei dann keine 2 Zeichen angefügt werden.
Als ASCII-Wert dargestellt, ist das einmal die 10 und die 13.

Nun die Fragen: wo kommen diese merkwürdigen Zeichen her? Und wie bekomme ich die möglichst clever weg?

MfG thomy
 
Zuletzt bearbeitet:
Ich würde mal sagen, dass es mit der Kodierung der Datei zusammenhängt. Hast du diese mit der passenden Kodierung gespeichert?
 
ASCII 10 ist der Zeilenumbruch \n
ASCII 13 ist der carriage return \r

Wenn beides Enthalten ist deutet es Darauf hin das die Datei auf einem Windows System erstellt worden ist ,)

Entfernen solltest du sie eigentlich einfach können, per trim() auf die einzelnen Zeilen oder per str_replace(array("\n","\r"),"",$str) falls du dich entscheidet die Datei irgendwann per fget einzulesen o.Ä.
 
Zuletzt bearbeitet:
Zurück