Das Flag 'b' erzwingt den binären Modus.
Sie verwenden das 'b' Flag, wenn Sie mit Binärdateien, dh. ein Bild.
Hinweis:
Wenn Sie eine Textdatei schreiben und wollen einen Zeilenumbruch einfügen, müssen Sie die richtigen Zeilenende-Zeichen (s) für Ihr Betriebssystem verwenden.
Unix-basierte Systeme \n
als Zeilenende-Zeichen verwenden, Windows-basierte Systeme verwenden \r\n
als die Zeilenumbrüche und Macintosh-basierte Systeme verwenden Endung \r
als Zeilenendezeichen.
Windows bietet ein Textmodus-Übersetzungsflag ('t') an, das beim Arbeiten mit der Datei \n
transparent in \r\n
übersetzt.
Im Gegensatz dazu können Sie auch 'b' verwenden, um den Binärmodus zu erzwingen, der Ihre Daten nicht übersetzt.
Sie können unter Verwendung des 'b' Flag im mode
Parameter, um die Übersetzung zu vermeiden. Beispiel Nutzung:
$handle_read = fopen($filepath, 'rb');
$handle_write = fopen("/home/user/file.gif", "wb");
So ... der Grund, dies empfohlen wird, ist klar gesagt auf die manual:
Wenn Sie nicht die ‚b‘ Flag angeben, wenn sie mit binären Dateien arbeiten, können Sie erfahre seltsame Probleme mit deinen Daten, einschließlich beschädigter Bilddateien und seltsamer Probleme mit \ r \ n Zeichen.
Die Verwendung von ‚b‘ Flag wird auch auf Handbuchseiten von fwrite()
und fread()
festgestellt, welche binären sicheren Funktionen Datei lesen/schreiben sind.
Warnung:
Auf Systemen, welche zwischen Binär- und Textdateien (das heißt Windows) die Datei unterscheiden muss mit 'b' im fopen() Parameter Modus geöffnet werden.
$filename = "c:\\files\\somepic.gif";
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize($filename));
fclose($handle);
Es gibt weitere Informationen über oben Kenntnis von dem man Sie festgestellt haben. Es erzwingt den binären Modus. Msgstr "Wenn Sie bei der Arbeit mit Binärdateien nicht das 'b' Flag angeben, können seltsame Probleme mit Ihren Daten auftreten, einschließlich beschädigter Bilddateien und seltsamer Probleme mit \ r \ n Zeichen." – Ekin
@Ekn warum nicht eine Antwort?:) –
@DiligentKeyPresser Alles klar, als Antwort hinzugefügt, aber zuerst dachte ich, dass ich vielleicht die Frage markieren sollte, da die Antwort innerhalb der Frage selbst war: p – Ekin