|
|
|
| Сегодня один знокамый задал мне этот вопрос. Я не знал что ему ответить.
fopen('путь','r') - режим чтения бинарного файла.
fopen('путь',r+t') - режим чтения тестового файла.
1000111100110 - бинарный файл
ралеатупироуп8 - текстовой файл.
И действительно в чем разница? | |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(06.08.2011 в 16:31)
| | Флаг "t" работает только в Windows, и при его указании, php конвертирует unix-подобный перевод строки "\n" в windows-подобный перевод строки "\r\n". На самом деле, какой-то практической пользы от данного флага нет. И для кроссплатформенности его даже не рекомендуется использовать.
Все это можно прочитать в заметках мануала. | |
|
|
|
|
|
|
|
для: Drago
(06.08.2011 в 17:27)
| | Разница в том что текстовой для винды а бинарный для всех? | |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(06.08.2011 в 17:56)
| | Разница в том, что в бинарном режиме данные остаются неизменными на любой платформе. А в текстовом, в windows, могут измениться. | |
|
|
|
|
|
|
|
для: Drago
(06.08.2011 в 18:13)
| | А как они могу измениться? Измениться, всмысле повредиться? | |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(06.08.2011 в 18:26)
| | В текстовом режиме они начинают преобразовываться в зависимости от операционной системы, если замена \n на \r\n приводит к тому, что программа отказывается читать такой файл, да, в том числе и повредиться. | |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(06.08.2011 в 16:31)
| | >1000111100110 - бинарный файл
>ралеатупироуп8 - текстовой файл.
Конкретно с таким содержимым разницы не будет, нужны переводы строк, чтобы разница стала заметной. | |
|
|
|
|
|
|
|
для: cheops
(06.08.2011 в 18:32)
| | В общем не было бы Windows не было бы у меня и у товарища этой головной боли.
Блин, я сколько не сталкивался с fopen ни где и слова написано не было про текстовой режим.
Спасибо. | |
|
|
|