Pregunta

Tengo una página web con un botón de enviar y me gustaría php para analizar la página web y haga clic en el botón de enviar y obtener la respuesta (que puede ser un enlace u otra página HTML.)

¿Hay alguna manera para hacer clic en un botón de envío utilizando php?

Sé que hay algo así como HtmlUnit para Java que le permite a uno pro-gramaticalmente llenar los campos del formulario y haga clic en el botón enviar. Pero me gustaría hacer lo mismo en php.

Gracias

¿Fue útil?

Solución

CURL le permitirá obtener los resultados de un envío de formularios

por ejemplo

$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);

También puede hacer lo mismo con las funciones PHP Stream

por ejemplo

$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);
}

En cualquier caso, $ contenido debe contener los resultados de la sumisión de la forma

Otros consejos

Tome un vistazo a selenio sistema de pruebas de aplicaciones Web.

El href="http://www.lastcraft.com/simple_test.php" rel="nofollow noreferrer"> SimpleTest biblioteca

phpWebHacks parece prometedor para la tarea.

Características, citado en el sitio web:

* 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.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top