本文目录一览:
- 1、php实现模拟post请求用法实例
- 2、腾讯PHP面试题,PHP如何模拟POST提交登录?求详细代码
- 3、php 模拟post 上传
- 4、PHP 5.2用POST方式登录,求解如何写
- 5、php页面向外网的asp页面post表单数据实现模拟登陆,怎么实现
- 6、怎么用php模拟post提交请求得到相应,能给个例子吗
php实现模拟post请求用法实例
本文实例讲述了php实现模拟post请求的方法。分享给大家供大家参考。具体如下:
class
Request{
public
static
function
post($url,
$post_data
=
'',
$timeout
=
5){//curl
$ch
=
curl_init();
curl_setopt
($ch,
CURLOPT_URL,
$url);
curl_setopt
($ch,
CURLOPT_POST,
1);
if($post_data
!=
''){
curl_setopt($ch,
CURLOPT_POSTFIELDS,
$post_data);
}
curl_setopt
($ch,
CURLOPT_RETURNTRANSFER,
1);
curl_setopt
($ch,
CURLOPT_CONNECTTIMEOUT,
$timeout);
curl_setopt($ch,
CURLOPT_HEADER,
false);
$file_contents
=
curl_exec($ch);
curl_close($ch);
return
$file_contents;
}
public
static
function
post2($url,
$data=array()){//file_get_content
$postdata
=
http_build_query(
$data
);
$opts
=
array('http'
=
array(
'method'
=
'POST',
'header'
=
'Content-type:
application/x-www-form-urlencoded',
'content'
=
$postdata
)
);
$context
=
stream_context_create($opts);
$result
=
file_get_contents($url,
false,
$context);
return
$result;
}
public
static
function
post3($host,$path,$query,$others=''){//fsocket
$post="POST
$path
HTTP/1.1\r\nHost:
$host\r\n";
$post.="Content-type:
application/x-www-form-";
$post.="urlencoded\r\n${others}";
$post.="User-Agent:
Mozilla
4.0\r\nContent-length:
";
$post.=strlen($query)."\r\nConnection:
close\r\n\r\n$query";
$h=fsockopen($host,80);
fwrite($h,$post);
for($a=0,$r='';!$a;){
$b=fread($h,8192);
$r.=$b;
$a=(($b=='')?1:0);
}
fclose($h);
return
$r;
}
}
$url='http://******/con/Inter.php';
$data=Request::post($url,array('api'='tag_list'));
$data2=Request::post2($url,array('api'='tag_list'));
echo
$data;
希望本文所述对大家的php程序设计有所帮助。
腾讯PHP面试题,PHP如何模拟POST提交登录?求详细代码
大概流程是
先构建要传输的数据
再使用php的stocket模拟post请求
例子,比如我打开这个页面所用到的数据就是(这里用的是GET请求,改成POST就行了)
构造出以上的字符串,然后使用stocket发送出去即可
$fp = fsockopen(主机ip,端口号);
fputs($fp, 数据字符串);
while(!feof($fp)) {
//这里是输出请求所得到的回应数据
$result .= fgets($fp, 128);
}
更多请自行百度php模拟post请求
因为我以前在工程实例中做过,所以比较了解
纯手打,望采纳
话说,这个问题过了就能进腾讯?门槛太低了吧。。。
php 模拟post 上传
你写一个方法把,在php里面可以使用curl库来模拟这样的表单 代码如下:
//curl实现post请求
public function curl_post($url, $data = null){
//创建一个新cURL资源
$curl = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // 跳过证书检查
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); // 从证书中检查SSL加密算法是否存在
//设置URL和相应的选项
curl_setopt($curl, CURLOPT_URL, $url);
if (!empty($data)){
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//执行curl,抓取URL并把它传递给浏览器
$output = curl_exec($curl);
//关闭cURL资源,并且释放系统资源
curl_close($curl);
return $output;
}
PHP 5.2用POST方式登录,求解如何写
HTML中:(头尾的head、body之类的我就省了)
form action="xxx.php" method="post"
用户名:input type="text" name="name" /br/
密码:input type="password" name="password" /br/
input type="submit" value="登录" /
/form
PHP中:
?php
//HTML的form表单中,action指向此PHP文件,method="post"时,利用$_POST即可获取到提交的内容
if($_POST['name']=='user' $_POST['password']=='123456'){
echo 'Y';
}else{
echo 'N';
}
//直接使用if判断,如果用户名为user,密码为123456,则输出Y,否则为N
?
php页面向外网的asp页面post表单数据实现模拟登陆,怎么实现
这个实现方式太多了。可以用ajax跨域提交数据。可以用PHP的扩展类curl进行模样表单提交。用JS跨域一直是一个问题,但可以实现,用jquery的时候你要注意这点,只有ajax()这个方法。用curl是不存在跨域问题的。但你要注意的是:curl模样表单提交的时候,提交的字段一定要按字母集的顺序(abcdef..)中文字符一定要用urlencode()函数进行编码就可以了。要怎么提交,下一个firebug查看一下就知道了
怎么用php模拟post提交请求得到相应,能给个例子吗
//这是我写的封装类,也就是模拟POST提交
//$durl也就是URL地址,比如
//$data 为POST数组
//模拟POST提交的用途,采集数据,模拟用户登录(为什么现在登录需要验证码,不是为了测你智商..
更不是考你的眼力,而防止你模拟登录..用暴力破解法强行破解密码)
function curl_file_post_contents($durl, $timeout = 5, $data) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $durl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_USERAGENT, _USERAGENT_);
curl_setopt($ch, CURLOPT_REFERER, _REFERER_);
curl_setopt($ch, CURLOPT_POST, 1); //设置为POST传输
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); //添加post数据
$r = curl_exec($ch);
var_dump($ch);
if ($r === false) { //判断错误
echo curl_error($ch);
}
$info = curl_getinfo($ch); //能够在cURL执行后获取这一请求的有关信息
curl_close($ch);
return $r;
}