重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
在网上搜素关键字 模拟表单提交 有GET方式的 POST方式的 都行这是一个例子
创新互联专注于城西网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供城西营销型网站建设,城西网站制作、城西网页设计、城西网站官网定制、小程序定制开发服务,打造城西网络公司原创品牌,更为您提供城西网站排名全网营销落地服务。
CURL
$ch = curl_init();
//组装用户名和密码
//模拟提交两个数据 可以不提交
$info['username'] = $this-username;//用户名
$info['password'] = $this-pwd;//密码
//模拟表单提交
$params[CURLOPT_URL] = $this-url; //请求url地址
$params[CURLOPT_HEADER] = true; //是否返回响应头信息
$params[CURLOPT_RETURNTRANSFER] = true; //是否将结果返回
$params[CURLOPT_FOLLOWLOCATION] = true; //是否重定向
$params[CURLOPT_USERAGENT] = 'Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1';//模拟浏览器
$postfields = '';
//将表单要提交的数据编程URL拼接方式
foreach ($info as $key = $value){
$postfields .= urlencode($key) . '=' . urlencode($value) . '';
}
$params[CURLOPT_POST] = true;//POST方式
$params[CURLOPT_POSTFIELDS] = $postfields;
curl_setopt_array($ch, $params); //传入curl参数
$content = curl_exec($ch); //执行
看起来你的代码正确,不知道你有什么问题。
这个方法不错,但是最好用一个封装好的类。
比如http_client之类的,网上这样的类挺多了,你可以搜索一下。
当然直接用socket也可以。
用PHP向服务器发送HTTP的POST请求,代码如下:
?php
/**
* 发送post请求
* @param string $url 请求地址
* @param array $post_data post键值对数据
* @return string
*/
function send_post($url, $post_data) {
$postdata = http_build_query($post_data);
$options = array(
'http' = array(
'method' = 'POST',
'header' = 'Content-type:application/x-www-form-urlencoded',
'content' = $postdata,
'timeout' = 15 * 60 // 超时时间(单位:s)
)
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
return $result;
}
使用的时候直接调用上面定义的send_post方法:
$post_data = array(
'username' = 'username',
'password' = 'password'
);
send_post('网址', $post_data);
第一种实现方式:实用socket编程,通常我们实用fsockopen这个函数来创建一个socket连接,用fputs来发送一个请求
第二种实现方式:实用php的curl扩展,我们使用curl_init()来初始化一个连接,然后设置一堆的curl_setopt()的东西来设置url,post的数据等等,最后我们使用curl_exec()来实现请求。
第三种方式就是: 实用file_get_contents函数,其实我们平时抓取一个网页可能只实用它的第一个参数,其实它的第三个参数就有数据了