使用PHP提交表单

时间:2009-10-29 12:06:43

标签: php

我有一个方法POST的提交表单,我想编写一个可以自动提交此表单的脚本,我之所以需要这个是出于测试目的。为了测试基于这些表单字段的搜索,我需要在很短的时间内获得大量数据,而且我没有时间去处理这个问题。这可能吗?

4 个答案:

答案 0 :(得分:5)

您可以使用curl来模拟表单提交。

// create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/script.php");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, true ); //enable POST method

// prepare POST data
$post_data = array('name1' => 'value1', 'name2' => 'value2', 'name3' => 'value3');

// pass the POST data
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data );

// grab URL and pass it to the browser
curl_exec($ch);

// close cURL resource, and free up system resources
curl_close($ch);

来源:http://php.net/manual/en/book.curl.php

答案 1 :(得分:2)

如果您不习惯使用curl,可以使用名为snoopy的模拟Web浏览器的php库。它自动执行检索网页内容和发布表单的任务。

<?php
/* load the snoopy class and initialize the object */
require('../includes/Snoopy.class.php');
$snoopy = new Snoopy();

/* set some values */
$p_data['color'] = 'Red';
$p_data['fruit'] = 'apple';

$snoopy->cookies['vegetable'] = 'carrot';
$snoopy->cookies['something'] = 'value';

/* submit the data and get the result */
$snoopy->submit('http://phpstarter.net/samples/118/data_dump.php', $p_data);

/* output the results */
echo '<pre>' . htmlspecialchars($snoopy->results) . '</pre>';
?>

答案 2 :(得分:0)

让PHP用数据填充表单并打印出发布表单的Javascript,PHP不能自己发布它。

答案 3 :(得分:0)

您可以使用php.net/curl通过PHP发送POST请求。