符合中小企业对网站设计、功能常规化式的企业展示型网站建设
本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...
商城网站建设因基本功能的需求不同费用上面也有很大的差别...
手机微信网站开发、微信官网、微信商城网站...
看来楼主的截图,写的纯粹的对curl的运用,个人写个简化版的!!
创新互联建站是一家集网站建设,上城企业网站建设,上城品牌网站建设,网站定制,上城网站建设报价,网络营销,网络优化,上城网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
$curl是接口页面。。。作用是取数据然后传递给本页面!!这个页面不是来源页面,只是一个接口文件而已!!如果你连这个页面都不想要,那就只能在本页面自己填写获取数据的代码了!!也就不用使用到post数据了!!
$post_val是post提交所需的数据,如果为空,那就是get获取数据,也就是说$curl要自带参数,这个要看你接口页面的程序所定了!!
例子:
1.php
$b = $_GET['k'];
//这边获取的就是2.php抛出来的数据。。。
$get_value = curl_file_get_contents(‘2.php’,"ct=28lm=0word=".$b."co=23");
var_dump($get_value);//这边就是你想要的代码。。随便你怎么处理了!!
//这个是curl的精简版。。。不用那么多代码
function curl_file_get_contents($curl,$post_val="")
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $curl);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
if($post_val)
{
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_val);
}
$r = curl_exec($ch);
curl_close($ch);
return $r;
}
2.php(接口文件,也相当于把方法写在另一个文件,通过url调用此方法并回传值给1.php!!多用于2个文件不在同一程序内,引用(include)不了,又懒得自己再写个方法,从而通过这种方法获取,比如说淘宝接口)
$get_key = $_POST['word']; //这边就指明了只用能post方式获取数据
..................(这边就是通过获取的$get_key来获取数据,并赋值与$value)......
return $value; //这边把数据抛给1.php(谁调用接口的就抛给谁)
这样写的好处是,假如获取$value的代码很长,这样写可以减少代码量!!不在同一个服务器或者框架下面的程序也可以调用。。。。(同一个框架下的代码可以用include引入进来!!)
先写到着吧!!!还有不懂的可以自己百度下或者追问。。我看到了会继续回答的!!
方法1、最常见的方法是:$_POST['fieldname'];
说明:只能接收Content-Type:
application/x-www-form-urlencoded提交的数据
解释:也就是表单POST过来的数据
方法2、file_get_contents("php://input");
说明:
允许读取
POST
的
原始数据
。
和
$HTTP_RAW_POST_DATA
比起来,它给内存带来的压力较小,并且不需要任何特殊的
php.ini
设置。
php://input
不能用于
enctype="multipart/form-data"。
解释:
对于未指定
Content-Type
的POST数据,则可以使用file_get_contents(“php://input”);来获取原始数据。
事实上,用PHP接收POST的任何数据都可以使用本方法。而不用考虑Content-Type,包括
二进制文件
流也可以。
所以用方法二是最保险的方法
方法3、$GLOBALS['HTTP_RAW_POST_DATA'];
说明:
总是产生
$HTTP_RAW_POST_DATA
变量包含有原始的
POST
数据。
此变量仅在碰到未识别
MIME
类型的数据时产生。
$HTTP_RAW_POST_DATA
对于
enctype="multipart/form-data"
表单数据不可用
如果post过来的数据不是PHP能够识别的,可以用
$GLOBALS['HTTP_RAW_POST_DATA']来接收,
比如
text/xml
或者
soap
等等
解释:
$GLOBALS['HTTP_RAW_POST_DATA']存放的是POST过来的原始数据。
$_POST或
$_REQUEST
存放的是
PHP以key=value的形式格式化以后的数据。
但$GLOBALS['HTTP_RAW_POST_DATA']中是否保存POST过来的数据取决于centent-Type的设置,即POST数据时
必须显式示指明Content-Type:
application/x-www-form-urlencoded,POST的数据才会存放到
$GLOBALS['HTTP_RAW_POST_DATA']中
用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);
//这是我写的封装类,也就是模拟POST提交
//$durl也就是URL地址,比如
//$timeout超时时间
//$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;
}
form表单demo:task.html
fieldset id="setFiled"
legend发布任务/legend
form action="registr.php" method="post" id="steForm"
label任务类型:/labelbr
input type="text" name="type" id="taskType" placeholder="请选择任务类型"/br
label酬nbsp;nbsp;金:/labelbr
input type="number" name="money" id="forMoney" min="1" max="1000"/label元/labelbr
label截止时间:/labelbr
input type="datetime" name="time" id="timeSubmit"/span data-year="" data-month="" data-date="" id="showDate"/spanbr
label详细描述:/labelbr
textarea maxlength="512" name="textAray" id="msgArea"/textareabr
input type="submit" name="subMit" id="forSub" value="点击发布" /
/form
扩展资料
php接收POST数据的三种方式
1、$_POST 方式接受数据
$_POST 方式是由通过HTTP的POST方法传递过来的数据组成的数组,是一个自动全局变量。
注:只能接收Content-Type:application/x-www-form-urlencode提交的数据。也就是只能接收表单过来的数据。
2、GLOBLES[‘HTTP_RAW_POST_DATA’]
如果访问原始POST数据不是php能够识别的文档类型,比如:text/xml 或者soap等等,可以用$GLOBLES[‘HTTP_RAW_POST_DATA’]来接收,$HTTP_RAW_POST_DATA变量包含有原始POST数据。此变量仅在碰到未识别的MIME数据时产生。
注:$HTTP_RAW_POST_DATA对于enctype=”multipart/form-data”表单数据不可用,也就是说使用$HTTP_RAW_POST_DATA无法接受网页表单post过来的数据。
3、file_get_contents(“php://input”);
如果访问原始POST数据,更好的方法是使用file_get_content(“php://input”);对于未指定Content-Type的POST数据,可以使用该方法读取POST原始数据,包括二进制流也可以和$HTTP_RAW_POST_DATA比起来。它带来的生存眼里更小,并且不需要任何特殊的php.ini设置。
注:php://input不能用于 enctype=”multipart/form-data”
例如:$postStr = file_get_contents("php://input"); //获取POST数据