2010-06-18 3 views
1

В PHP, какие самые большие соображения при выборе между использованием http_get ("https: // ...") и петля розетки с fsockopen ("SSL: // ..."), fputs() и fread()?PHP http_get vs fsockopen для HTTPS-сервера?

В последнее время я видел пару реализаций, которые используют последний. Это просто старый устаревший код или есть какая-то веская причина для этого?

Спасибо.

ответ

0

http_get требует расширения PECL, которое не связано с PHP.

fsockopen сложнее в использовании (требуется цикл, отправка заголовков вручную, чтение заголовков вручную и, как правило, больше кода), но является частью PHP (он всегда присутствует).

На мой взгляд, лучший отказоустойчивый вариант не использовать HTTP обертку, как:

file_get_contents('https://...') 

HTTP-обертка, однако, имеет свой собственный набор ограничений - не переваривать аутентификации, никакого автоматического обработка кодированного контента и т. д. Поэтому, если доступны либо PECL http extension, либо curl extension, это, вероятно, будет лучшим вариантом.

+0

Спасибо. По какой-то нечетной причине у хоста, к которому я обращаюсь, возникают проблемы с подходом fsockopen(), а file_get_contents() отлично работает для моего текущего приложения. (На самом деле, я, вероятно, буду использовать simplexml_load_file().) – danorton