Я использую fopen или curl для загрузки XML-файла с указанием URL-адреса в PHP

У меня есть XML-файл, который я могу получить через URL-адрес. Я знаю, что могу получить файл, используя fopen , но иногда я видел, что скрипты используют curl . Есть ли преимущество использования curl fopen для получения файлов XML?

Ну, если вы собираетесь использовать SimpleXML для загрузки файла, который вы можете использовать

 simplexml_load_file($filename); 

Однако некоторые серверы будут ограничивать загрузку URL-адресов из этой функции. В этом случае вы будете ограничены cURL.

allow_url_fopen , который требуется, если вы хотите открыть удаленный файл с fopen , может быть отключен; поэтому возникают ситуации, когда fopen('http://...') невозможен.
Примечание: в этом ответе я говорю « fopen », но точно так же со всеми функциями PHP, которые могут обращаться к удаленным файлам: fopen , file_get_contents , simplexml_load_file , …

С другой стороны, curl является расширением и не всегда включен.

Хорошим с завитком является то, что его довольно легко настроить, и существует множество существующих опций (см. curl_setopt )

Чтобы настроить способ получения доступа к удаленным файлам, это немного сложнее – вам обычно приходится работать с потоками (см. Здесь , например) ; и, вообще говоря, есть больше людей, знающих завиток, чем развивают освоение потоков.

Самый безопасный способ – особенно если ваше приложение будет развернуто на серверах, на которых вы не являетесь администратором, и не можете повторно настроить:

  • Попробуйте одно решение
  • И если это не сработает, попробуйте другой

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