Diferencia PHP entre Curl y HttpRequest

Tengo la necesidad de hacer solicitudes RAW POST (PUT a $ var) a un servidor, y acepto los resultados de esa página como una cadena. También necesita agregar información de encabezado HTTP personalizado (como x-example-info: 2342342)

Tengo dos formas de hacerlo

  • Curl ( http://us.php.net/manual/en/book.curl.php )
  • PHP HTTP usando HTTPRequest ( http://us.php.net/manual/en/book.http.php )

¿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í …

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

Como tal, es mucho más probable que CURL se instale en su plataforma objective, 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.

Esta página parece sugerir que HTTPRequest utiliza CURL debajo del capó de todos modos. Aunque parece que podría ofrecer una interfaz un poco más elegante para curl_multi _ * ().

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

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

HTTPRequest es realmente una forma más fácil / más sintácticamente amigable de realizar la misma tarea.

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

HTTPRequest es un “tipo de” envoltorio para curl. Estas dos citas del manual deberían darle una pista:

  • Proporciona una poderosa funcionalidad de solicitud, si está construida con soporte CURL. Las solicitudes paralelas están disponibles para PHP 5 y superior.

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

Dijo eso (y dijo que nunca he usado esta extensión yo mismo), parece que si quieres que tu código se vea más orientado a objetos, puedes ir por este, pero puede ser un poco más lento, aunque nada comparado con el externo llame a lo que va a hacer, 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 explicaste en tu pregunta, definitivamente iría por curl.