У меня есть 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 отлично работает для вас, это, вероятно, ваш лучший выбор.