Каковы самые большие различия между fopen и curl?

StackOverflow https://stackoverflow.com/questions/2296508

  •  21-09-2019
  •  | 
  •  

Вопрос

Я создаю веб-приложение на PHP и хочу читать контент из другого домена.Похоже, что моими основными вариантами являются fopen и curl.

Каковы основные различия между этими двумя методами, особенно в отношении безопасности и доступных опций?

Имеет ли значение, является ли URL-адрес сайтом http или https?

Это было полезно?

Решение

Curl использует внешнюю библиотеку, и у нее гораздо больше возможностей для настройки запроса - пользовательских заголовков, генерации POST-запроса, загрузки файлов.Я должен сказать все, что вам нужно.

Fopen ограничен только тем, что просто отправляет запрос GET по URL-адресу без какой-либо дальнейшей настройки.

Что касается безопасности, на CURL не влияет конфигурация безопасности в PHP (например, запрещенный fopen удаленных URL-адресов и тому подобное).

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

Также я не совсем уверен, но я думаю, что fopen не может обрабатывать SSL (https) соединения. И fopen, и CURL поддерживают SSL (как отметил Энди Шеллам в комментарии ниже).

Другие советы

Видишь Каковы важные различия между использованием fopen ($url) и curl в PHP? для некоторых параметров безопасности, которые влияют на fopen, а именно allow_url_include.

Также обратите внимание, что с curl, если вы устанавливаете параметр CURLOPT_FOLLOWLOCATION, то curl следует перенаправлениям на file:// для извлечения данных (по-прежнему зависит от open_basedir).Перенаправление на другие схемы, такие как ftp:// могло быть хуже (не тестировал ftp://).Без этого setopt curl вообще не следует перенаправлениям.fopen, похоже, работает с 302 по умолчанию, но только http: // -> http:// и не http:// -> файл://.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top