en cliquant sur le bouton soumettre en utilisant php
-
19-09-2019 - |
Question
J'ai une page Web avec un bouton de soumission et je voudrais php pour analyser la page Web et cliquez sur le bouton Envoyer et obtenir la réponse (il peut être un lien ou d'une autre page html.)
Est-il possible de cliquer sur un bouton d'envoi en utilisant php?
Je sais qu'il ya quelque chose comme HtmlUnit pour java qui permet à un pro-grammaticalement remplir les champs de formulaire et cliquez sur le bouton soumettre. Mais je voudrais faire la même chose en php.
Merci
La solution
CURL vous permettra d'obtenir les résultats d'une soumission de formulaire
par exemple
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $urlOfFormSubmission);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
"field1"=>"data1",
"field2"=>"data2"
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$contents = curl_exec($ch);
Vous pouvez également faire la même chose avec les fonctions flux PHP
par exemple
$params = array('http' => array(
'method' => "post",
'content' => array("field1"=>"data1", "field2"=>"data2")
));
$ctx = stream_context_create($params);
$fp = @fopen($urlOfFormSubmission, 'rb', false, $ctx);
if (!$fp)
{
throw new Error("Problem with ".$urlOfFormSubmission);
}
$contents = @stream_get_contents($fp);
if ($contents === false)
{
throw new Error("Problem reading data from ".$urlOfFormSubmission);
}
Dans les deux cas, le contenu $ devrait contenir les résultats de la soumission du formulaire
Autres conseils
Jetez un oeil à Sélénium système de test des applications Web.
Le SimpleTest bibliothèque PHP dispose également d'un robot de page qui peut analyser une page HTML et générer la requête POST appropriée.
phpWebHacks semble prometteur pour la tâche.
Caractéristiques, cité sur le site:
* Support HTTP/1.1
* Fetch web pages.
* Submit forms and upload files.
* Support https.
* Support HTTP cookies.
* Support HTTP redirects and Meta-refresh redirects.
* Support HTTP Authentication.
* Support proxy server.
* Support gzip encoding.
* Logging of HTTP streams for full debugging.
* Parsing HTML forms.
* Custom User-Agent.