Вопрос

У меня есть веб-страница с кнопкой отправки, и я хотел бы, чтобы php проанализировал веб-страницу, нажал кнопку отправки и получил ответ (это может быть ссылка или другая html-страница).)

Есть ли какой-нибудь способ нажать кнопку отправки с помощью php?

Я знаю, что есть что-то вроде htmlunit для java, которое позволяет про-грамматически заполнить поля формы и нажать кнопку отправки.Но я хотел бы сделать то же самое в php.

Спасибо

Это было полезно?

Решение

CURL позволит вам получить результаты отправки формы

например

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

Вы также можете сделать то же самое с потоковыми функциями PHP

например

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

В любом случае, $contents должен содержать результаты отправки формы

Другие советы

Взгляните на Селен Система тестирования веб-приложений.

В Самый простой В библиотеке PHP также есть сканер страниц, который может анализировать HTML-страницу и генерировать соответствующий POST-запрос.

Php - вебхаки выглядит многообещающе для этой задачи.

Особенности, как указано на веб-сайте:

* 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.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top