Использовать ли fopen или curl для загрузки XML-файла с заданным URL-адресом в PHP - PullRequest
4 голосов
/ 29 апреля 2010

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

Ответы [ 3 ]

3 голосов
/ 29 апреля 2010

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

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


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

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


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

  • Попробуйте одно решение
  • И, если он не работает, попробуйте другой
1 голос
/ 29 апреля 2010

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

simplexml_load_file($filename);

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

1 голос
/ 29 апреля 2010

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

...