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

Разное

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

 

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

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

тема: Текстовый и бинарный режимы передачи файлов по FTP
 
 автор: Владимир55   (14.04.2011 в 23:51)   письмо автору
 
 

Некоторые CMS нормально работают лишь в том случае, если файлы закачивали на сервер в бинарном режиме. Почему это так, я не знаю, но это условие прописано в инструкции. И я проверял сам - действительно, при закачке в режиме ASCII система даже не запускается.

Как всё это можно понять?

  Ответить  
 
 автор: cheops   (15.04.2011 в 00:21)   письмо автору
 
   для: Владимир55   (14.04.2011 в 23:51)
 

В бинарном режиме файлы передаются без изменений, в текстовом режиме происходит модификация переводов строки в зависимости от операционной системы (т.е. загружаете файлы с Windows на UNIX и у вас автоматически все последовательности \r\n заменяются на \n). Код же самой CMS к этому может быть чувствителен, если перевод строки в нем задан жестко (не говоря уже про изображения, но тут FTP-клиенты обычно в принудительном порядке переходят в бинарный режим).

  Ответить  
 
 автор: Владимир55   (15.04.2011 в 10:38)   письмо автору
 
   для: cheops   (15.04.2011 в 00:21)
 

А как правильнее поступить, если сайт делается на Денвере, потом закачивается на сервер, потом возвращается на компьютер, потом опять закачивается на сервер, и так многократно?

  Ответить  
 
 автор: Саня   (15.04.2011 в 13:19)   письмо автору
 
   для: Владимир55   (15.04.2011 в 10:38)
 

В эпоху механических печатных машинок перевод каретки и перевод на новую строку действительно были необходимыми. Это проистекает из самой архитектуры печатных машинок. В компьютере нет каретки. Символ, обозначающий перевод каретки, был введён специально чтобы сохранить "обратную совместимость" с механическими машинками. Символ перевода каретки был ненужен в компьютере. Из-за этого мы наблюдаем разные соглашения об "окончании строки" в разных операционных системах. Windows использует этот рудимент (возврат каретки) при переводе строк, поэтому конец строки в windows определяется двумя символами — "возврат каретки" и "перевод строки" (\r\n, CR LF). UNIX и его производные отказались от этого рудимента и в этих системах перевод строки определяется только одним символом — "перевод строки". Макинтош тоже отличился. В нём конец строки соответствует одному символу — "перевод каретки".

По протоколу FTP можно соединяться с машинами, работающими под разными операционными системами, которые были несовместимы между собой по части признака конца строки. Поэтому и были придуманы разные режимы. Двоичный (бинарный) и текстовый. Передача файла по FTP в двоичном режиме не изменяет ни одного бита в передаваемых данных, тогда как "текстовый режим" заменяет признак конца строки на тот, который принят на целевой машине. Грубо говоря, при передаче файла в текстовом режиме с unix на windows, символ "перевод строки" заменяется на "перевод каретки" и "перевод строки".

А теперь конкретно по вашему вопросу.
Полагаю, денвер стоит на windows, а сервер работает на линуксе. В этом случае можете закачивать все файлы в бинарном режиме. РНР корректно распознаёт все виды перевода строки.

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

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