используйте WordPress как функцию PHP для загрузки файла на сервер - PullRequest
0 голосов
/ 08 января 2011

Я использую веб-хостинг, который в настоящее время блокирует весь исходящий трафик через порт 80, поэтому ни fopen не работает, ни curl, но WordPress может самостоятельно обновлять его ... как это возможно ????Мне нужно также извлечь файл из Интернета, возможно ли, что я скопирую функцию, используемую WordPress, и получу файлы, используя php ..

plz help ..

1 Ответ

0 голосов
/ 08 января 2011

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

Порядок запросов GET / HEAD: HTTP Extension, cURL, Streams, Fopen,и, наконец, Fsockopen.

Один из сценариев состоит в том, что ваш хост на самом деле не блокирует трафик через порт 80, а скорее делает загрузку файлов трудной, не включая расширение cURL и настройку allow_url_fopen в false, чтобы предотвратить общие уязвимости внедрения кода.В этом случае возможно, что WordPress преуспевает, используя один из других методов для извлечения данных.В этом сценарии вы можете загружать файлы с помощью PHP-сценариев (в порядке предпочтения):

  1. Проверьте, поддерживает ли ваш хост расширение HTTP , и используйте его вместо * 1019.* или cURL.
  2. Включите и используйте wp-includes/class-http.php и используйте его в своих сценариях, чтобы обойти эти ограничения.
  3. Напишите / используйте другую библиотеку, которая предоставляетзагрузка файлов через Streams или Fsockopen.

Альтернативный сценарий заключается в том, что ваш хост блокирует трафик на порту 80, но имеет белый список wordpress.org, позволяющий WordPress обновлятьсясам.В этом случае вам не повезло, если вы не можете настроить какое-либо решение для прокси на другом порту.

...