Основы PHP
  Что такое PHP?
  Возможности PHP
  Преимущества PHP
  История развития
  Что нового в PHP5?
  «Движок» PHP
  Переход на PHP 5.3
New Переход на PHP 5.6
  Введение в PHP
  Изучение PHP
  Основы CGI
  Синтаксис PHP
  Типы данных PHP
  Переменные в PHP
  Константы PHP
  Выражения PHP
  Операторы PHP
  Конструкции PHP
  Ссылки в PHP
  PHP и ООП
  Безопасность
  Функции PHP
  Функции по категориям
  Функции по алфавиту
  Стандартные функции
  Пользовательские
  PHP и HTTP
  Работа с формами
  PHP и Upload
  PHP и Cookies
  PHP и базы данных
  PHP и MySQL
  Документация MySQL
  Учебники
  Учебники по PHP
  Учебники по MySQL
  Другие учебники
  Уроки PHP
  Введение
  Самые основы
  Управление
  Функции
  Документация
  Математика
  Файлы
  Основы SQL
  Дата и время
  CURL
  Изображения
  Стили
  Безопасность
  Установка
  Проектирование БД
  Регулярные выражения
  Подготовка к работе
  Быстрый старт
  Установка PHP
  Установка MySQL
  Конфигурация PHP
  Download / Скачать
  Скачать Apache
  Скачать PHP
  Скачать PECL
  Скачать PEAR
  Скачать MySQL
  Редакторы PHP
  Полезные утилиты
  Документация
  PHP скрипты
  Скачать скрипты
  Инструменты
  PHP в примерах
  Новости портала
 Главная   »  PHP и HTTP
 
 

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

В случае, если опция allow_url_fopen включена в конфигурационном файле php.ini, вы можете использовать HTTP и FTP ссылки в большинстве функций, принимающих в качестве параметра имя файла. Также вы можете использовать ссылки в операторах include(), include_once(), require() и require_once().

Примечание: В 4.0.3 и более ранних версиях при сборке необходимо использовать опцию --enable-url-fopen-wrapper для активации возможности работать с удаленными файлами.

Примечание: Дистрибутивы PHP для Windows-платформ до версии 4.3 не поддерживают возможности работы с удаленными файлами для следующих операторов: include(), include_once(), require(), require_once(), и функций вида imagecreatefromXXX (Image Functions).

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

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

<?php
$file 
fopen ("http://www.example.com/""r");
if (!
$file) {
     echo 
"<p>Unable to open remote file.\n";
     exit;
}
while (!
feof ($file)) {
    
$line fgets ($file1024);
    
/* Сработает, только если заголовок и сопутствующие теги расположены в одной строке */
    
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-авторизация.)

Пример 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().

 
 
 <<< Назад 
 Содержание 
 Вперед >>> 
Есть еще вопросы или что-то непонятно - добро пожаловать на наш  форум портала PHP.SU 
 

 
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS