Domanda

Voglio pubblicare un URL utilizzando CURL e PHP.

C'è una grande forma sulla pagina web e non voglio copiare manualmente tutte le variabili e lo mise nella mia richiesta POST.

Sono indovinando ci deve essere un modo per serializzare automaticamente il modulo (utilizzando DOM o qualcosa) e poi basta cambiare tutto ciò ho bisogno di valori.

Non ho potuto google il mio modo per uscire da questo così mi chiedevo qualcuno dovrebbe essere così gentile da aiutare.

Quindi, c'è comunque di serializzare automaticamente una forma che è sepolto in un mucchio di contenuti HTML ho appena tirato da un URL?

Grazie per qualsiasi aiuto, Andrew

È stato utile?

Soluzione

$http = new HttpQueryString();
$http->set($_POST);

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$http->get());

Richiede PECL pecl_http> = 0.22.0

Altri suggerimenti

Il suo non chiaro per me se ti stai chiedendo come ottenere il modulo nel browser al server o come posizionare il modulo pubblicato nella richiesta ricciolo. Da php, assumendo la forma postato sopra, sarebbe semplice come:

curl_setopt ($ handle, CURLOPT_POSTFIELDS, $ _POST);

se nessun dato viene convalidato in questo modo.

Dal lato web, non so perché si serializzare il modulo utilizzando il DOM / Javascript, in contrasto con appena inviarlo attraverso un posto normale?

Non sono sicuro che la domanda è in realtà, ma sei o che vogliono fare qualcosa di simile:

$fields_string = http_build_query($data_to_send);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$fields_string);

o avete bisogno di guardare in questo:

$html = file_get_html('http://www.thesite.com/thepage.html');
foreach($html->find('input') as $element) 
echo $element->name . '<br>';

Non capisco la domanda. Sembra che si desidera screen-raschiare un modulo, compilarlo e poi post-it di nuovo alla pagina che hai da. È giusto?

Modifica in risposta al commento: Mi consiglia raschiando il CURL'd HTML con uno strumento come semplice HTML DOM (che è quello che io uso per raschiare con PHP). La documentazione per la libreria di scelta vi aiuterà a capire come identificare i campi del modulo. Dopo di che, si vorrà arricciare pagina di azione del modulo, con l'attributo CURL_POST_FIELDS impostare i valori che si desidera passare alla forma, urlencode()'d naturalmente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top