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

Était-ce utile?

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.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top