Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
бота с файлами 247 
О режиме t нет ни слова в документации PHP (во всяком случае, на момент 
написания этих строк), однако, как показывают мои тесты, он работает на всех 
системах. 
Чтобы проиллюстрировать это, давайте рассмотрим пример сценария. Он будет рабо- 

тать по-разному в зависимости от того, в каком режиме мы откроем файл: в бинар- 

ном или текстовом. Забегая вперед, замечу, что функция fgets() читает из файла 
очередную строку. 
Листинг 15.1. Сценарий test.php: работа с текстовыми файлами 
\n"; 
$f=fopen("test.php","rt"); // текстовый режим 
echo MakeHex(fgets($f,100)),"
\n"; ?> Первая строчка файла test.php состоит всего из двух символов — это < и ?. За ни- ми должен следовать маркер конца строки. Сценарий показывает, как выглядит этот маркер, т. е. состоит ли он из одного или двух символов. Запустим этот сценарий в Unix. Мы получим две одинаковые строки, которые выво- дят операторы echo: 3C 3F 0A 3C 3F 0A Отсюда следует, что в этой системе физический конец строки обозначается одним символом — кодом 0x0A, или \n (коды 0x3C и 0x3F соответствуют символам < и ?). В то же время, если запустить сценарий в Windows, мы получим такой результат: 3C 3F 0D 0A 3C 3F 0A Часть IV. Стандартные функции PHP 248 Как видите, бинарное и текстовое чтение дали разные результаты! В последнем слу- чае произошла трансляция маркера конца строки. Как уже говорилось, можно предварять имя файла строкой http:// или ftp://, при этом прозрачно будет осуществляться доступ к файлу с удаленного хоста. В случае HTTP-доступа PHP открывает соединение с указанным сервером, а также посылает ему нужные заголовки: Host и GET. После чего при помощи файлового де- скриптора из удаленного файла можно читать обычным образом — например, по- средством все той же функции fgets(). Если же вы открываете FTP-файл, то в него можно производить либо запись, либо читать из него, но не и то и другое одновременно. Кроме того, FTP-сервер должен поддерживать пассивный режим передачи (впрочем, большинство серверов его под- держивают). Не забудьте также указать логин и пароль, как это сделано в примерах ниже. Дам небольшой совет: не используйте обратные слэши \ в именах файлов, как это принято в DOS и Windows. Просто забудьте про этот архаизм. Поможет вам в этом PHP, который незаметно в нужный момент переводит прямые слэши / в обратные (разумеется, если вы работаете под Windows). Если же вы все-таки не можете обой- тись без обратного слэша, не забудьте его удвоить, потому что в строках он воспри- нимается как спецсимвол: $fp = fopen ("c:\\windows\\hosts", "r"); Еще раз предупреждаю: этот способ не переносим между операционными системами и из рук вон плох. Не используйте его! Вот несколько примеров: // Открывает файл на чтение $f = fopen("/home/user/file.txt", "r") or die("Ошибка!"); // Открывает HTTP-соединение на чтение $f = fopen("http://www.php.net/", "r") or die("Ошибка!"); // Открывает FTP-соединение с указанием логина и пароля для записи $f = fopen("ftp://user:[email protected]/", "w") or die("Ошибка!"); Конструкция or die() Давай
 
<<-[Весь Текст]
Страница: из 287
 <<-