2009-05-15 29 views
20

Tengo la necesidad de hacer solicitudes RAW POST (PUT a $ var) a un servidor y aceptar los resultados de esa página como una cadena. También es necesario añadir la información del encabezado HTTP personalizado (como x-ejemplo-Info: 2342342)Diferencia de PHP entre Curl y HttpRequest

que tienen dos maneras de hacerlo

¿Cuáles son las diferencias entre los dos? ¿Qué es más delgado? ¿Más rápido? Ambos parecen más o menos lo mismo para mí ...

Respuesta

22

Curl se incluye con PHP, HTTPRequest es una extensión PECL por separado.

Como tal, es mucho más probable que CURL se instale en su plataforma de destino, que es prácticamente el factor decisivo para la mayoría de los proyectos. Solo consideraría usar HTTPRequest si solo planea instalar su software en servidores en los que personalmente tiene la capacidad de instalar extensiones PECL; si sus clientes van a hacer sus propias instalaciones, la instalación de extensiones PECL generalmente está fuera de discusión.

This page parece sugerir que HTTPRequest utiliza CURL bajo el capó de todos modos. Aunque parece que podría ofrecer una interfaz un poco más elegante para curl_multi _ *().

4

HTTPRequest es un "tipo de" envoltorio para curl. Estas dos citas del manual le proporcionarán una pista:

  • Proporciona una potente función de solicitud, si se construye con el apoyo rizo. Las solicitudes paralelas están disponibles para PHP 5 y superior.

  • La extensión se debe compilar con »libcurl support para habilitar la funcionalidad de solicitud (--with-http-curl-requests). Se requiere una versión de biblioteca igual o superior a v7.12.3.

dice que (y dijo que nunca he utilizado esta extensión a mí mismo), parece que si desea que su código a mirar más orientado a objetos, se puede ir por éste, pero podría ser un poco más lenta , aunque nada comparado con la llamada externa que va a realizar, por lo que no consideraré el rendimiento para hacer mi elección. Daría preferencia al hecho de que Curl está integrado y esta otra tienes que agregarlo tú mismo, lo cual es poco conveniente y reduce la portabilidad en caso de que quieras alojar tu aplicación en un entorno compartido que no controlas.

Para las necesidades que usted explicó en su pregunta, definitivamente iría por curl.

9

HTTPRequest (y la extensión PECL) se basa en libcurl.

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

El HTTPRequest es en realidad una más amigable sintácticamente manera más fácil/para llevar a cabo la misma tarea.

Como mencionó Frank Farmer, es más probable que tenga una plataforma de destino con curl ya instalado y podría tener dificultades para obtener la biblioteca PECL instalada por el proveedor de hosting.