2011-05-17 8 views
7

Actualmente uso bastante exclusivamente la funcionalidad de contexto de flujo PHP (vea http://us2.php.net/manual/en/function.stream-context-create.php) para acceder a los recursos HTTP y he podido usarlo con éxito para hacer PUT, SUPRIMIR, POST, administrar cookies y hacer casi todo lo que he necesitado para hacer. Originalmente comencé a usarlo porque tenía problemas de SSL con compilaciones cURL anteriores de Debian PHP (había un problema de inicialización doble de OpenSSL dentro del proceso de Apache que tenía errores al intentar acceder a las direcciones URL de SSL): probablemente estos estén corregidos ahora, pero no lo he hecho. tenido la oportunidad de volver.¿La API PHP CURL es más limpia/más rápida/mejor que el uso de secuencias para el acceso HTTP/HTTPS?

En discusiones con un amigo, él afirmó que la api de cURL es más rápida/mejor, así que quería preguntar: ¿hay alguna experiencia/conocimiento definido sobre qué opción es superior y de qué manera?

+0

cURL es [generalmente más rápido] (http://stackoverflow.com/questions/555523/file-get-contents-vs-curl-what-has-better-performance) con el procesamiento de solicitudes. Pero no clasificaría la API como "mejor". ¿Por qué está utilizando las funciones raw fopen/stream en lugar de una clase de utilidad HTTP? – mario

+0

Pereza, principalmente: escribí un fragmento de código hace 2 años y lo he estado copiando y pegando donde sea que lo necesite, y es francamente tan pocas líneas de código que no me molesté en envolverlo. – Femi

Respuesta

2

En cuanto a rendimiento, cURL wins by a lot consistently. No negaré que es más difícil de usar y que podría no importar para uso general, pero la diferencia fue bastante dramática y pensé que valía la pena señalar.

+2

Consulte también la segunda respuesta para obtener resultados que relativicen "mucho". – mario

+0

Sí, lo vi; el hecho de que las pruebas se realizaron con un año de diferencia no ayuda en el caso anterior. No obstante, el resultado final de cabeza a cabeza es el mismo. Sin embargo, actualicé mi respuesta para reflejar eso. –

+0

Esto fue hace 6 años. ¿Sigue siendo cierto ahora que PHP ha pasado por una revisión mayor y varias revisiones menores? – GordonM

6

Las corrientes son bastante ordenadas en mi experiencia. Probablemente lo saben ya, pero aquí hay un post en corrientes con un giro en caso de no:

http://fabien.potencier.org/article/44/php-iterators-and-streams-are-awesome

Curl es agradable y rápido, y sencillo; pero honestamente no preferiría uno u otro por razones de rendimiento. Nunca he medido, pero dudo que haga una gran diferencia en comparación con la sobrecarga de hacer una solicitud remota en primer lugar.

+0

No sabía acerca de los bits del iterador, y el contenedor de la secuencia S3 es bastante ingenioso: tendrá que profundizar en eso. Gracias por la respuesta. – Femi

Cuestiones relacionadas