2009-05-15 15 views
20

J'ai besoin de faire des requêtes RAW POST (PUT a $ var) à un serveur, et accepte les résultats de cette page sous forme de chaîne. Il faut aussi ajouter des informations d'en-tête HTTP personnalisé (comme x-exemple-info: 2342342)PHP Différence entre Curl et HttpRequest

J'ai deux façons de le faire

Quelles sont les différences entre les deux? quoi de plus maigre? plus rapide? Les deux semblent à peu près les mêmes pour moi ...

Répondre

22

Curl est livré avec PHP, HTTPRequest est une extension PECL séparée. En conséquence, il est beaucoup plus probable que CURL sera installé sur votre plate-forme cible, ce qui est un facteur décisif pour la plupart des projets. J'envisagerais d'utiliser HTTPRequest uniquement si vous prévoyez d'installer votre logiciel uniquement sur des serveurs sur lesquels vous avez personnellement la possibilité d'installer des extensions PECL; Si vos clients font leurs propres installations, l'installation d'extensions PECL est généralement hors de question.

This page semble suggérer que HTTPRequest utilise CURL sous le capot de toute façon. Cela peut sembler offrir une interface légèrement plus élégante à curl_multi _ *().

4

Le HTTPRequest est un "type de" wrapper pour curl. Ces deux citations du manuel devrait vous donner un indice:

  • Il fournit des fonctionnalités de demande puissante, si compilé avec le support CURL. Les demandes parallèles sont disponibles pour PHP 5 et supérieur.

  • L'extension doit être construite avec le support »libcurl pour activer la fonctionnalité de demande (--with-http-curl-requests). Une version de bibliothèque égale ou supérieure à v7.12.3 est requise.

Dit que (et dit que je ne l'ai jamais utilisé cette extension moi-même), on dirait que si vous voulez que votre code pour regarder plus orienté objet, vous pouvez aller pour celui-ci, mais il pourrait être un peu plus lent , bien que rien ne soit comparé à l'appel externe que vous allez faire, je ne considérerai donc pas la performance comme faisant mon choix. Je donnerais la préférence au fait que curl est intégré et que vous devez l'ajouter vous-même, ce qui n'est pas pratique et réduit la portabilité si vous voulez héberger votre application dans un environnement partagé que vous ne contrôlez pas.

Pour les besoins que vous avez expliqués dans votre question, j'irais certainement pour curl. HTTPRequest (et l'extension PECL) est construit sur libcurl.

9

http://us.php.net/manual/en/http.requirements.php

Le HTTPRequest est vraiment juste un moyen plus facile/plus syntaxiquement convivial pour effectuer la même tâche. Comme Frank Farmer l'a mentionné, vous êtes plus susceptible d'avoir une plate-forme cible avec curl déjà installée et pourrait avoir des difficultés à obtenir la bibliothèque PECL installée par le fournisseur d'hébergement.