Если я делаю несколько вызовов API на каждой странице в веб-приложении, подходит ли мне cURL или я использую simplexml_load_file с оболочкой URL?

Повлияет ли многократное открытие, вызов и закрытие соединения cURL на приложение?

-1
Ross 17 Дек 2009 в 22:06
Вы можете проверить их... Это действительно несложно.
 – 
Tyler Carter
17 Дек 2009 в 22:09
1
Ему интересно, лучше ли использовать simplexml_load_file несколько раз или несколько раз cURL. По крайней мере, таково мое восприятие.
 – 
Tyler Carter
17 Дек 2009 в 22:14

2 ответа

Вы должны быть в порядке. Когда вы используете simplexml_load_file с обертками URL, он делает вещи, очень похожие на cURL, просто PHP управляет открытием и закрытием соединений для вас. На самом деле общепринятое мнение состоит в том, что cURL будет обрабатывать соединения более эффективно, чем использование simplexml_load_file с обертками URL. Кроме того, не все общие хосты поддерживают использование simplexml_load_file с URL-адресами, поэтому вам все равно часто приходится прибегать к cURL.

1
Alan Storm 17 Дек 2009 в 22:22
1
Верно, но я бы сказал, что если вы находитесь где-то, где обе URL-оболочки отключены, И завиток отключен, и вам нужно получить XML-ресурс через HTTP, вы немного облажались :)
 – 
Alan Storm
17 Дек 2009 в 22:46

Ну, во-первых, я бы не привык делать вызовы API с функциями загрузки URL-адресов simpleXML и DOMDocument... Вам лучше использовать cURL, file_get_contents, fopen и т. д. Таким образом, вы можете уловить любые проблемы с запросом/ ответ, прежде чем вы получите часть синтаксического анализа, т.е. у вас есть лучшая способность обрабатывать ошибки и направлять поток управления, а также регистрировать/представлять более содержательные сообщения о том, что происходит не так.

С учетом сказанного я бы никогда не стал создавать и уничтожать несколько обработчиков ресурсов cURL (если вы это имеете в виду), просто откройте один, а затем продолжайте сбрасывать атрибуты и отправлять новый запрос.

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

1
prodigitalson 17 Дек 2009 в 22:23
Спасибо за это, я включил cURL для того, чтобы я мог регистрировать ошибки и узнавать, почему и если время ожидания API истекло.
 – 
Ross
17 Дек 2009 в 23:32
Нет проблем... Кстати, вы можете проверить некоторые из клиентских пакетов http, которые существуют в мире FOSS... они действительно помогают создавать все эти функции вместо jsut, используя необработанные функции php cURL. Возможно, вы захотите взглянуть на Zend_Http_Client или sfWebBrowserPlugin (хотя в последнем случае вам придется внести некоторые изменения, чтобы удалить или интегрировать имеющиеся у него зависимости). Развлекайся!
 – 
prodigitalson
18 Дек 2009 в 00:00