From Wikipedia, the free encyclopedia
Jump to: navigation, search

Binary-safe is a term mainly used in the PHP programming-language to describe expected behaviour when passing binary-data into functions whose main responsibility is text & string manipulating. The term is considered official enough to be used widely in the official PHP documentation.[1]

A binary-safe function is essentially one that treats its input as a raw stream of bytes and ignores every textual aspect it may have. It would therefore be more correct to characterize a 'binary-safe' text-function as one which incidentally works on text, but whose primary mode of operation is on raw binary data.

Binary-safe file read and write[edit]

While all textual data can be represented in binary-form, it must be done so through a Character encoding. In addition to this, how new-lines (end-of-line signs) are represented may vary depending on the platform used. Windows, Linux and Mac OS X all represent new-lines differently in binary form.

This means that reading a file (binary-data), parsing it as text and then writing it back to disk (thus reconverting it back to binary form) may result in a different binary representation than the one originally used.

Most programming languages let the programmer decide if he wants to parse the contents of a file as text, or read it as binary data. To convey this intent special flags or different functions exists when reading or writing files to disk.

For example, in the PHP programming language, developers have to use fopen($filename, "rb") instead of fopen($filename, "r") to read the file as a binary-stream instead of interpreting the textual data as such. This may among PHP-users also be referred to reading in 'binary safe' mode.


  1. ^ "PHP: dirname - Manual". Retrieved 2017-02-21.