Das Folgende ist Teil meiner Funktion, die eine Datei öffnet und den Zeiger an das Ende setzt. Dann testet es jedes Zeichen $char
in umgekehrter Reihenfolge, bis es eine neue Zeile oder ein Wagenrücklaufzeichen findet.
Das Problem ist, dass diese Zeichen nicht erkannt werden.
Die Funktion ist wie folgt:
%Vor% Es schafft nie print("YAY")
, aber es testet erfolgreich jedes Zeichen. Die Datei, die es liest, hat definitiv Zeilenumbrüche.
(Die Datei wurde von einer anderen Funktion erstellt, in die "\n"
eingefügt wurde. Diese wird darin angezeigt und wird in meiner IDE erfolgreich als alternative Zeile angezeigt.)
Weiß jemand, warum er diese Zeilenumbruchzeichen nicht erkennen kann?
Um Ihre Code-Plattform agnostisch zu machen, ist es besser, wenn Ihre Bedingung wie folgt lautet:
%Vor%Danke an @ Félix Gagnon-Grenier Kommentar unten.
PHP_EOL
funktioniert möglicherweise nicht mit Strings, die von anderen Systemen kommen. PHP_EOL
repräsentiert das Endline-Zeichen für das aktuelle System.
Um alle Arten von Newline-Zeichen einschließlich Unicode-Zeilenumbrüchen zu erkennen, verwenden Sie \R
:
\R
entspricht (?>\r\n|\n|\r|\f|\x0b|\x85|\x{2028}|\x{2029})
Tags und Links php