Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Раскажи в чем разница режимов работы с файлами. Текстового и Бинарного
 
 автор: Гавриленко Дмитрий   (06.08.2011 в 16:31)   письмо автору
 
 

Сегодня один знокамый задал мне этот вопрос. Я не знал что ему ответить.

fopen('путь','r') - режим чтения бинарного файла.
fopen('путь',r+t') - режим чтения тестового файла.

1000111100110 - бинарный файл
ралеатупироуп8 - текстовой файл.

И действительно в чем разница?

  Ответить  
 
 автор: Drago   (06.08.2011 в 17:27)   письмо автору
 
   для: Гавриленко Дмитрий   (06.08.2011 в 16:31)
 

Флаг "t" работает только в Windows, и при его указании, php конвертирует unix-подобный перевод строки "\n" в windows-подобный перевод строки "\r\n". На самом деле, какой-то практической пользы от данного флага нет. И для кроссплатформенности его даже не рекомендуется использовать.
Все это можно прочитать в заметках мануала.

  Ответить  
 
 автор: Гавриленко Дмитрий   (06.08.2011 в 17:56)   письмо автору
 
   для: Drago   (06.08.2011 в 17:27)
 

Разница в том что текстовой для винды а бинарный для всех?

  Ответить  
 
 автор: Drago   (06.08.2011 в 18:13)   письмо автору
 
   для: Гавриленко Дмитрий   (06.08.2011 в 17:56)
 

Разница в том, что в бинарном режиме данные остаются неизменными на любой платформе. А в текстовом, в windows, могут измениться.

  Ответить  
 
 автор: Гавриленко Дмитрий   (06.08.2011 в 18:26)   письмо автору
 
   для: Drago   (06.08.2011 в 18:13)
 

А как они могу измениться? Измениться, всмысле повредиться?

  Ответить  
 
 автор: cheops   (06.08.2011 в 18:31)   письмо автору
 
   для: Гавриленко Дмитрий   (06.08.2011 в 18:26)
 

В текстовом режиме они начинают преобразовываться в зависимости от операционной системы, если замена \n на \r\n приводит к тому, что программа отказывается читать такой файл, да, в том числе и повредиться.

  Ответить  
 
 автор: cheops   (06.08.2011 в 18:32)   письмо автору
 
   для: Гавриленко Дмитрий   (06.08.2011 в 16:31)
 

>1000111100110 - бинарный файл
>ралеатупироуп8 - текстовой файл.
Конкретно с таким содержимым разницы не будет, нужны переводы строк, чтобы разница стала заметной.

  Ответить  
 
 автор: Гавриленко Дмитрий   (06.08.2011 в 19:39)   письмо автору
 
   для: cheops   (06.08.2011 в 18:32)
 

В общем не было бы Windows не было бы у меня и у товарища этой головной боли.

Блин, я сколько не сталкивался с fopen ни где и слова написано не было про текстовой режим.

Спасибо.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования