создание и продвижение сайта (вбиваю в ТОП-10, как гвозди)Настройка и сопровождение платной рекламы яндекс.директ

PHP. Руководство по PHP. 2005

Работа с удаленными файлами Пред.

След.

Глава 39. Работа с удаленными файлами

В случае, если опция allow_url_fopen включена

в конфигурационном файле php.ini, вы можете использовать

HTTP и FTP ссылки в большинстве функций, принимающих в качестве

параметра имя файла. Также вы можете использовать ссылки в операторах

include(), include_once(),

require() и require_once().

Дополнительную информацию о поддерживаемых в PHP протоколах вы можете

найти в Прил. M.

Замечание:

В 4.0.3 и более ранних версиях при сборке необходимо использовать опцию

--enable-url-fopen-wrapper для активации возможности работать

с удаленными файлами.

Замечание:

Дистрибутивы PHP для Windows-платформ до версии 4.3

не поддерживают возможности работы с удаленными файлами для следующих

операторов:

include(), include_once(),

require(), require_once(),

и функций вида imagecreatefromXXX (Ссылка LIV, Image Functions).

Например, вы можете использовать это для того, чтобы открыть файл на

удаленном сервере, извлечь необходимые вам данные и использовать их

в запросе к базе данных или же просто отобразить их в дизайне вашего сайта.

Пример 39-1. Получение заголовка удаленной страницы

<?php

$file = fopen ("http://example.com/", "r");

if (!$file){

echo "<p>Unable to open remote file.\n";

exit;

}

while (!feof ($file)){

$line = fgets ($file, 1024);

/* Сработает, только если заголовок и сопутствующие теги расположены в одной строке */

if (eregi ("<title>(.*)</title>", $line, $out)){

$title = $out[1];

break;

}

}

fclose($file);

?>

Вы также можете работать с удаленными файлами, расположенными на FTP-сервере

(подразумевается, что вы авторизировались с необходимыми для этого

привилегиями). Таким образом вы можете создавать новые файлы, но

попытка перезаписать существующий файл при помощи функции fopen()

приведет к ошибке.

Для того, что бы авторизироваться под пользователем, отличным от 'anonymous',

вам необходимо указать логин (и, возможно, пароль) в адресной строке, например

так: 'ftp://user:password@ftp.example.com/path/to/file'. (Вы можете

использовать этот же синтаксис для доступа к удаленным файлам по HTTP-протоколу,

если необходима Basic-авторизация.)

Пример 39-2. Сохранение данных на удаленном сервере

<?php

$file = fopen ("ftp://ftp.example.com/incoming/outputfile", "w");

if (!$file){

echo "<p>Unable to open remote file for writing.\n";

exit;

}

/* Запись данных. */

fputs ($file, $_SERVER['HTTP_USER_AGENT']. "\n");

fclose ($file);

?>

Замечание:

Глядя на приведенный выше пример, у вас может возникнуть идея

использовать эту технику для ведения удаленного лог-файла. К сожалению,

это не реализуемо, поскольку попытка записи в уже существующий

удаленный файл при помощи функции fopen()

приведет к ошибке. В реализации распределенного логирования, возможно, вам поможет

функция syslog().

Пред.

Начало

След.

Поддержка метода PUT

Уровень выше

Работа с соединениями

Отвечу на любые вопросы. С уважением, Дмитрий Владимирович.

Ваше письмо×
Free Web Hosting