Загрузка удаленных файлов php

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

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

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

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

$file = fopen ( «http://www.example.com/» , «r» );
if (! $file ) echo «

Невозможно открыть удаленный файл.\n» ;
exit;
>
while (! feof ( $file )) $line = fgets ( $file , 1024 );
/* Сработает, только если заголовок и сопутствующие теги расположены в одной строке */
if ( preg_match ( «@\(.*)\@i» , $line , $out )) $title = $out [ 1 ];
break;
>
>
fclose ( $file );
?>

Вы также можете работать с удаленными файлами, расположенными на FTP-сервере (подразумевается, что вы авторизовались с необходимыми для этого привилегиями). Таким образом вы можете только создавать новые файлы, но попытка перезаписать существующий файл при помощи функции fopen() приведет к ошибке.

Читайте также:  Java рекурсия максимальный элемент массива

Для того, что бы авторизоваться под пользователем, отличным от ‘anonymous’, вам необходимо указать логин (и, возможно, пароль) в адресной строке, например так: ‘ftp://user:password@ftp.example.com/path/to/file‘. (Вы можете использовать этот же синтаксис для доступа к удаленным файлам по HTTP -протоколу, если необходима Basic-авторизация.)

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

$file = fopen ( «ftp://ftp.example.com/incoming/outputfile» , «w» );
if (! $file ) echo «

Невозможно перезаписать удаленный файл.\n» ;
exit;
>
/* Запись данных. */
fwrite ( $file , $_SERVER [ ‘HTTP_USER_AGENT’ ] . «\n» );
fclose ( $file );
?>

Замечание:

Глядя на приведенный выше пример, у вас может возникнуть идея использовать эту технику для ведения удаленного лог-файла. К сожалению, это нереализуемо, поскольку попытка записи в уже существующий удаленный файл при помощи функции fopen() приведет к ошибке. В реализации распределенного логирования, возможно, вам поможет функция syslog() .

Источник

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

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

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

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

$file = fopen ( «http://www.example.com/» , «r» );
if (! $file ) echo «

Невозможно открыть удалённый файл.\n» ;
exit;
>
while (! feof ( $file )) $line = fgets ( $file , 1024 );
/* Сработает, только если заголовок и сопутствующие теги расположены в одной строке */
if ( preg_match ( «@\(.*)\@i» , $line , $out )) $title = $out [ 1 ];
break;
>
>
fclose ( $file );
?>

Вы также можете работать с удалёнными файлами, расположенными на FTP-сервере (подразумевается, что вы авторизовались с необходимыми для этого привилегиями). Таким образом вы можете только создавать новые файлы, но попытка перезаписать существующий файл при помощи функции fopen() приведёт к ошибке.

Для того, чтобы авторизоваться под пользователем, отличным от ‘anonymous’, вам необходимо указать логин (и, возможно, пароль) в адресной строке, например так: ‘ ftp://user:password@ftp.example.com/path/to/file ‘. (Вы можете использовать этот же синтаксис для доступа к удалённым файлам по HTTP -протоколу, если необходима Basic-аутентификация.)

Пример #2 Сохранение данных на удалённом сервере

$file = fopen ( «ftp://ftp.example.com/incoming/outputfile» , «w» );
if (! $file ) echo «

Невозможно перезаписать удалённый файл.\n» ;
exit;
>
/* Запись данных. */
fwrite ( $file , $_SERVER [ ‘HTTP_USER_AGENT’ ] . «\n» );
fclose ( $file );
?>

Замечание:

Глядя на приведённый выше пример, у вас может возникнуть идея использовать эту технику для ведения удалённого лог-файла. К сожалению, это нереализуемо, поскольку попытка записи в уже существующий удалённый файл при помощи функции fopen() приведёт к ошибке. В реализации распределённого логирования, возможно, вам поможет функция syslog() .

User Contributed Notes

  • Отличительные особенности
    • HTTP-​аутентификация в PHP
    • Cookies
    • Сессии
    • Работа с XForms
    • Загрузка файлов на сервер
    • Работа с удалёнными файлами
    • Работа с соединениями
    • Постоянные соединения с базами данных
    • Использование PHP в командной строке
    • Сборка мусора
    • Динамическая трассировка DTrace

    Источник

    Как скачать и сохранить удаленное изображение с помощью PHP 1 мин для чтения

    Favorite

    Добавить в избранное

    Главное меню » Блог-платформа wordpress » Как скачать и сохранить удаленное изображение с помощью PHP

    Как скачать и сохранить удаленное изображение с помощью PHP

    Х отите загрузить или сохранить любые удаленные изображения на сервере с помощью простых PHP скриптов? В этой статье мы расскажем вам, как загружать любые изображения с удаленного сервера.

    Как скачать и сохранить удаленное изображение с помощью PHP

    Есть три способа загрузки удаленного изображения, которое описано ниже. Опишем все методы и вы можете использовать любой из них, как вам удобно.

    Метод 1

    Вы можете использовать простую PHP функцию copy() для сохранения удаленных изображений на сервере.

    copy("http://example-url.com/images/icon.png", 'images/icon.png');

    Способ 2

    функция file_get_contents () копирует удаленное изображение а функция file_put_contents () будет вставить его в папку назначения на сервере.

    $content = file_get_contents('http://example-url.ru/images/icon.png'); file_put_contents('images/icon.png', $content);

    Способ 3

    Вы также можете загрузить изображения с помощью curl, чтобы сохранить удаленный файл на сервере. Используйте ниже код в файле PHP.

    Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

    Источник

    Как скачать и сохранить удаленное изображение с помощью PHP 1 мин для чтения

    Favorite

    Добавить в избранное

    Главное меню » Блог-платформа wordpress » Как скачать и сохранить удаленное изображение с помощью PHP

    Как скачать и сохранить удаленное изображение с помощью PHP

    Х отите загрузить или сохранить любые удаленные изображения на сервере с помощью простых PHP скриптов? В этой статье мы расскажем вам, как загружать любые изображения с удаленного сервера.

    Как скачать и сохранить удаленное изображение с помощью PHP

    Есть три способа загрузки удаленного изображения, которое описано ниже. Опишем все методы и вы можете использовать любой из них, как вам удобно.

    Метод 1

    Вы можете использовать простую PHP функцию copy() для сохранения удаленных изображений на сервере.

    copy("http://example-url.com/images/icon.png", 'images/icon.png');

    Способ 2

    функция file_get_contents () копирует удаленное изображение а функция file_put_contents () будет вставить его в папку назначения на сервере.

    $content = file_get_contents('http://example-url.ru/images/icon.png'); file_put_contents('images/icon.png', $content);

    Способ 3

    Вы также можете загрузить изображения с помощью curl, чтобы сохранить удаленный файл на сервере. Используйте ниже код в файле PHP.

    Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

    Источник

Оцените статью