资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

php如何查看请求数据 php获取数据

php如何获得http post的数据?

PHP获取POST数据的几种方法:

创新互联专注于上栗企业网站建设,成都响应式网站建设公司,商城网站开发。上栗网站建设公司,为上栗等地区提供建站服务。全流程按需策划设计,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

方法1、最常见的方法是:$_POST['fieldname'];

说明:只能接收Content-Type:

application/x-www-form-urlencoded提交的数据。

方法2、file_get_contents("php://input");

说明:

允许读取

POST

的原始数据。

$HTTP_RAW_POST_DATA

比起来,它给内存带来的压力较小,并且不需要任何特殊的

php.ini

设置。

php://input

不能用于

enctype="multipart/form-data"。

方法3、$GLOBALS['HTTP_RAW_POST_DATA'];

说明:

总是产生

$HTTP_RAW_POST_DATA

变量包含有原始的

POST

数据。

此变量仅在碰到未识别

MIME

类型的数据时产生。

怎么查看php发出的post请求

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

如何查看php进程请求的socket详情

PHP使用socket发送HTTP请求的方法,具体如下:

socket方式:

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);//socket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO, array("sec"=20, "usec"=0));socket_connect($socket, '', 80);//里面的换行代表 \r\n 注意拷贝的代码后面可能有空格$http = eof

GET / HTTP/1.0

Accept: */*

User-Agent: Lowell-Agent

Host: 

Connection: Close

eof;

socket_write($socket, $http, strlen($http));while($str = socket_read($socket, 1024))

{

echo $str;

}

socket_close($socket);

fsockopen方式:

$fp = fsockopen("", 80, $errno, $errstr, 30);if (!$fp) {

echo "$errstr ($errno)br /\n";

} else {

$out = "GET / HTTP/1.1\r\n";

$out .= "Host: \r\n";

$out .= "Connection: Close\r\n\r\n";

fwrite($fp, $http);

while (!feof($fp)) {

echo fgets($fp, 128);

}

fclose($fp);

}

原始socket方式:

$fp = stream_socket_client("tcp://", $errno, $errstr, 30);if (!$fp) {

echo "$errstr ($errno)br /\n";

} else {

$http = eof

GET / HTTP/1.0

Accept: */*

User-Agent: Lowell-Agent

Host: 

Connection: Close

eof;

fwrite($fp, $http);

while (!feof($fp)) {

echo fgets($fp, 1024);

}

fclose($fp);

}

stream  方式(get):

$http = eof

Host: 

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3Cookie: BAIDUID=79D98B1AD8436C57B967E111E484F1CD:FG=1; BDUSS=lF-UFFOanFPVG92NmF4U3NiTEoxOFh4YVBCTnZaMUtoTUNhZmxrWThwN25IaUJVQVFBQUFBJCQAAAAAAAAAAAEAAADzo1gKc2lxaW5pYW8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOeR-FPnkfhTU; BAIDUPSID=79D98B1AD8436C57B967E111E484F1CD; BD_UPN=13314352; BD_HOME=1; H_PS_PSSID=10047_1435_10874_10212_10501_10496_10753_10796_10219_10355_10666_10597_10095_10658_10442_10700_10460_10360_10618; sug=3; sugstore=0; ORIGIN=2; bdime=0Connection: keep-alive

Cache-Control: max-age=0

eof;

$hdrs = array(

'http' =array(

'header' = $http,

'timeout'=1, //超时 秒

'method' = 'GET', //默认方式

'protocol_version' = '1.1', //默认为 1.0),

);

//参数格式参考 方式的格式可以参考;  = stream_context_create($hdrs);

echo file_get_contents('', 0, $context);stream  方式 post:

$postdata = http_build_query(array('act'='save', 'id'=387171));$http = eof

Host: 

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3Content-Type: application/x-www-form-urlencoded; charset=UTF-8Cookie: BAIDUID=79D98B1AD8436C57B967E111E484F1CD:FG=1; BDUSS=lF-UFFOanFPVG92NmF4U3NiTEoxOFh4YVBCTnZaMUtoTUNhZmxrWThwN25IaUJVQVFBQUFBJCQAAAAAAAAAAAEAAADzo1gKc2lxaW5pYW8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOeR-FPnkfhTU; BAIDUPSID=79D98B1AD8436C57B967E111E484F1CD; BD_UPN=13314352; BD_HOME=1; H_PS_PSSID=10047_1435_10874_10212_10501_10496_10753_10796_10219_10355_10666_10597_10095_10658_10442_10700_10460_10360_10618; sug=3; sugstore=0; ORIGIN=2; bdime=0Connection: keep-alive

Cache-Control: max-age=0

eof;

#注意post方式需要增加Content-Type

$hdrs = array(

'http' =array(

'header' = $http,

'timeout'=1, //超时 秒

'method' = 'POST',

'content' = $postdata,

'protocol_version' = '1.1', //默认为 1.0),

);

//参数格式参考 方式的格式可以参考;  = stream_context_create($hdrs);

echo file_get_contents('', 0, $context);

php 怎么知道http请求的状态(比如正常连线

PHP可以用 ignore_user_abort 忽略用户的中断,继续执行脚本。可以用 register_shutdown_function()

在中断时回调函数。回调可以用 connection_status 查看连接的状态:

0 - NORMAL

1 - ABORTED

2 - TIMEOUT

3 - ABORTED and TIMEOUT

在PHP学习过程中如何获取http请求中的参数值?

可以使用PHP的全局静态变量$_GET获取get请求的参数

$_POST获取post请求的参数

其他一些请求传递数据可以使用file_get_contents等函数获取

thinkphp怎样获取ajax请求数据

一般将前台页面搜索结果中,不喜欢的内容(链接),删除掉,因为整个网站的编程框架式thinkphp,运用js中的ajax对页面进行响应,调用后台php接口,实现前台和后台数据库的同时更新.

首先我们需要做的就是在前台页面中添加一个文本“删除”,可以这么添加:

代码如下:

a href="javascript:void(0);" id= "phpecho $val[id]/php" class="delete" 删除/a

上面的html代码的意思:就是给删除添加一个href,这个href是个js函数,类似于超链接的作用,当然对于我这样的新手在刚开始的时候会有疑惑,我们平时的超链接不是这样的,网页中很多的javascript:void(0),那程序怎么知道用户点击删除后,会响应其真正对应的js函数呢?别急,这就是为什么会为删除添加id以及class这样的标签,相信我把js中的代码公布出来以后你就会明白了,代码如下:

jQuery(".list a.delete").click(function(){

if(confirm("你确定要删除吗?")){

var _this=this;

var id = jQuery(_this).attr("id");

jQuery.ajax({

url : '/Search/index.php/Jason/delete?',

data : {'id':id},

dataType : 'json',

success : function(data){

var del = data.del;

if(del == 1){//删除成功

jQuery("#"+id).parents(".list").remove();

}else{//删除失败

alert("删除失败");

}

}

});

}

});

大家看函数的头部:jQuery(".list a.delete").click(),jQuery后面的标签是很重要的,这就保证了jquery很准确的响应页面中用户点击的“位置”,添加的事件为click(),在click里添加响应事件的代码:var id = jQuery(_this).attr("id");获取a对应的id,因为这个id是我们删除数据库时用到的链接id,当然这种直接明文的方式不好,在这里只是介绍整个响应过程。调用ajax,实现异步的运行整个过程。我们设置了js接受的是json串,这里的方式应该有很多种吧,我没有去尝试,大家要是有兴趣可以自行尝试一下。/Search/index.php/Jason/delete?这句话就是js去请求php的接口,php接口对用的代码如下:

注意ajax在求php接口时的路径,也就是delete函数必须放在JasonAction.class.php中,此例子是必须这样的:

代码如下:

public function delete(){

if($this-isGet()){

$userId = session("uid");//用户登录

if(!empty($userId)){

$a = M('***');

$id = $this-_get('id');

$result=$a-where("id=$id")-delete();//删除

if($result 0){

$arr = array("del"='1');

}else{

$arr = array("del"='0');

}

$json_str = json_encode($arr);

echo $json_str;//返回给js

}

}

}

相信大家对上面的代码不会陌生吧,整个过程都是thinkphp框架内部配置完毕的.

var del = data.del;这句是接受php代码返回来的json串中del这个key的value,进而在前台进行页面更新和响应.

复制代码代码如下:

if(del == 1){//删除成功

jQuery("#"+id).parents(".list").remove();//这句话就是后台删除成功后,直接在前台对响应的div进行删除,这样性能就会很快,无需进行后台数据的重新提取至前台页面中,

}else{//删除失败

alert("删除失败");

}

整个响应的过程就是这样,至于效果优化,是优化和细化方面的问题,后来,身边的同事又告诉我前台移除响应链接的另一个动态效果:

即将:

代码如下:

jQuery("#"+id).parents(".list").remove();

替换为:

代码如下:

jQuery("#"+id).parents(".list").slideUp("slow", function(){

jQuery(this).remove();

});


分享文章:php如何查看请求数据 php获取数据
当前链接:http://cdkjz.cn/article/doccejo.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220