2009-05-15 23 views
20

Ho bisogno di fare richieste POST RAW (PUT a $ var) a un server e accettare i risultati da quella pagina come una stringa. Anche bisogno di aggiungere informazioni di intestazione HTTP personalizzata (come x-esempio-info: 2.342.342)Differenza PHP tra Curl e HttpRequest

ho due modi di farlo

Quali sono le differenze tra i due? cosa c'è di più magra? Più veloce? Entrambi sembrano più o meno gli stessi per me ...

risposta

22

Curl è in bundle con PHP, HTTPRequest è un'estensione PECL separata.

Come tale, è molto più probabile che CURL venga installato sulla piattaforma di destinazione, che è praticamente il fattore decisivo per la maggior parte dei progetti. Prenderò in considerazione l'utilizzo di HTTPRequest solo se prevedi di installare il tuo software solo su server che hai personalmente la possibilità di installare estensioni PECL; se i tuoi clienti faranno le proprie installazioni, l'installazione di estensioni PECL è solitamente fuori questione.

This page sembra suggerire che HTTPRequest usi CURL sotto il cofano comunque. Sembra che potrebbe offrire un'interfaccia leggermente più elegante per curl_multi _ *(), però.

4

HTTPRequest è "tipo di" un wrapper per curl. Queste due citazioni dal manuale dovrebbero darvi un indizio:

  • Fornisce potenti funzionalità di richiesta, se costruito con supporto CURL. Le richieste parallele sono disponibili per PHP 5 e versioni successive.

  • L'estensione deve essere costruita con »supporto libcurl per abilitare la funzionalità di richiesta (richieste con-http-curl-request). È richiesta una versione di libreria uguale o superiore alla v7.12.3.

ha detto che (e ha detto che non ho mai usato questa estensione io stesso), si presenta come se si desidera che il codice per guardare più orientato agli oggetti, si può andare per questo, ma potrebbe essere un po 'più lento , anche se nulla in confronto con la chiamata esterna che stai per fare, quindi non considererò le prestazioni per fare la mia scelta. Darei la preferenza al fatto che Curl è integrato e l'altro devi aggiungerlo tu stesso, il che è scomodo e riduce la portabilità nel caso tu voglia ospitare la tua app in un ambiente condiviso che non controlli.

Per i bisogni che hai spiegato nella tua domanda, mi piacerebbe sicuramente andare in giro.

9

HTTPRequest (e l'estensione PECL) è costruito su libcurl.

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

Il HTTPRequest è in realtà solo una/più sintatticamente amichevole modo più semplice per eseguire la stessa operazione.

Come ha detto Frank Farmer, è più probabile che una piattaforma di destinazione con curl sia già installata e possa avere difficoltà a ottenere la libreria PECL installata dal provider di hosting.