2010-01-06 15:27



I have a webpage with a submit button and I would like php to parse the webpage and click the submit button and get the response (it can be a link or another html page.)

Is there any way to click a submit button using php?

I know there is something like htmlunit for java that allows one to pro-grammatically fill the form fields and click submit button. But I would like to do the same in php.


  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答


  • duanbiyi7319 duanbiyi7319 11年前

    CURL will let you get the results of a form submission


    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $urlOfFormSubmission);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, array(
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $contents = curl_exec($ch);

    You can also do the same thing with the PHP Stream functions


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

    In either case, $contents should contain the results of the form submission

    点赞 评论 复制链接分享
  • dtcu5885 dtcu5885 11年前

    phpWebHacks looks promising for the task.

    Features, as quoted from the website:

    * 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.
    点赞 评论 复制链接分享
  • dongxia2068 dongxia2068 11年前

    The SimpleTest PHP library also has a page crawler that can analyze a HTML page and generate the appropriate POST request.

    点赞 评论 复制链接分享
  • dpizd08264 dpizd08264 11年前

    Take a look at Selenium Web application testing system.

    点赞 评论 复制链接分享