PHP. Использование удалённых/remote файлов
Если поддержка "URL fopen-оболочки/wrapper" включена при
конфигурировании PHP (если вы только не передали явным образом флаг
--disable-url-fopen-wrapper для конфигурирования (для версий, новее
4.0.3) или не установили allow_url_fopen в off в файле php.ini (для
более новых версий)), вы можете использовать HTTP и FTP- URL'ы с
большинством функций, которые принимают filename/имя файла в качестве
параметра, в том числе - операторы require() и include().
Примечание: Windows-версия PHP в настоящее время не поддерживает
удалённый доступ к файлам для следующих функций: include(),
include_once(), require() require_once().
Например, вы можете использовать это для того, чтобы открыть файл на
удалённом web-сервере, разобрать вывод данных, а затем
использовать эти данные в запросе к БД или просто вывести их
в стиле вашего web-сайта.
Пример: Получение названия/title удалённой
страницы <?php $file = fopen
("http://www.example.com/", "r"); if (!$file)
{ echo "<p>Unable to open remote
file. "; exit; } while
(!feof ($file)) { $line = fgets ($file,
1024); /* Это будет работать, только если title и его
тэги расположены в одной строчке */ if (eregi
("<title>(.*)</title>", $line, $out))
{ $title =
$out[1]; break; } } fclose($file); ?>
Вы можете также записывать в файлы по FTP, если соединены как
пользователь с корректными правами доступа и если файл ещё
не существует. Для соединения как любой пользователь, кроме
'anonymous', вам необходимо специфицировать username (и,
возможно, password) в URL, как, например:
'ftp://user:password@ftp.example.com/path/to/file'. (Вы
можете использовать тот же синтаксис для доступа к файлам по HTTP, если
необходима Basic-аутентификация.)
Пример: Сохранение данных на удалённом
сервере <?php $file = fopen
("ftp://ftp.example.com/incoming/outputfile", "w"); if
(!$file) { echo "<p>Unable to open remote file for
writing. "; exit; } /*
Здесь записываются данные. */ fputs ($file,
$_SERVER['HTTP_USER_AGENT'] . " "); fclose
($file); ?>
Примечание: из этого примера у вас может возникнуть идея использовать
эту технику для записи в удалённый log, но, как указано
выше, вы можете записывать только в новый файл с
использованием оболочек URL fopen(). Для выполнения распределённого
логинга, вроде этого, вы должны просмотреть
syslog().
Источник: www.script-info.net
|