2010-04-29 2 views
4

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

ответ

1

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

simplexml_load_file($filename); 

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

+0

Это похоже на простейшее решение для меня, чтобы попробовать в первую очередь. Благодаря! – dkinzer

3

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

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


Один хороший с завитком, что это довольно легко настроить, и есть много существующих вариантов (см curl_setopt)

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


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

  • Попробуйте одно решение
  • И, если это Безразлично» t, попробуйте другой
1

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