Каков наилучший способ загрузить внешний файл на сервер с помощью программы - PullRequest
0 голосов
/ 04 июля 2010

Я написал плагин для WordPress и пытаюсь найти наилучший способ проверки программой обновлений на моем сервере и их автоматической загрузки по запросу пользователя. Это будет в основном использоваться для загрузки дополнительных функций, которые я не хочу добавлять в репозиторий WordPress, поскольку у них нет лицензии GNU.

Я написал программу для проверки обновлений, в которой я не уверен, это часть загрузки.

Должен ли я использовать file_get_contents (), а затем fwrite (), чтобы записать результаты в каталог? Я уверен, что это один из способов сделать это, но я ищу наиболее кросс-серверный безопасный способ сделать это, потому что плагин используется тысячами людей на разных установках, хотя они все PHP PHP5 +. Я боюсь, что некоторые хосты могут иметь какую-то безопасность, мешающую мне сделать это. Будет ли CURL лучшим вариантом?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 04 июля 2010

Вы можете использовать file_put_contents, что намного эффективнее, чем загружать все в память с помощью file_get_contents и затем вызывать fwrite.Второй параметр принимает ресурс потока, который можно открыть с помощью fopen или (если вы хотите обойти ограничения allow_url_fopen, fsockopen).

Таким образом, самый простой вариант, который использует только основные функции (без расширения curl и т. Д.) И работает в почти любой конфигурации:

  • Открыть транспортный поток с помощью fsockopen
  • Отправьте заголовки HTTP вручную с помощью fwrite
  • Напишите ответ с помощью file_put_contents
1 голос
/ 04 июля 2010

Не изобретай велосипед!WordPress имеет HTTP API для этой конкретной цели!

Проверьте кодекс для предметов первой необходимости - http://codex.wordpress.org/HTTP_API

Вы также можете просмотреть источник в wp-includes/class-http.php

...