首页 开发编程 正文

php怎么看请求数据流(php 数据流)

 SOL_TCP); strlen($http));}socket_close($socket); Close\r\n\r\n";$fp = stream_socket_client("tcp:}fclose($fp);en-us;q=0.3Cookie:...

今天给各位分享php怎么看请求数据流的知识,其中也会对php 数据流进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录:

如何查看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的执行流程,比如说向哪个页面发送get,post请求了,请求的数据等

thinkPHP 框架 ,在入口文件中加入

'SHOW_PAGE_TRACE'=1,

后,

点击页面底部的这个图标,会显示出 框架执行的所有信息,包括加载的页面,执行的时间,参数,类型等等

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://stdin, php://stdout 和 php://stderrphp://stdin,php://stdout 和 php://stderr允许访问 PHP 进程相应的输入或者输出流。php://inputphp://input 是个可以访问请求的原始数据的只读流。 POST 请求的情况下,最好使用 php://input 来代替 $HTTP_RAW_POST_DATA(原生的post数据),因为它不依赖于特定的 php.ini 指令,内存消耗更少。如下例:formaction=""method="post"inputtype="text"name="test"inputtype="submit"name=""//form?phpecho file_get_contents("php://input");?结果:php://outputphp://output 是一个只写的数据流, 允许你以 print 和 echo 一样的方式 写入到输出缓冲区。php://fdphp://fd 允许直接访问指定的文件描述符。 例如 php://fd/3 引用了文件描述符 3。php://memory 和 php://tempphp://memory 和 php://temp 是一个类似文件 包装器的数据流,允许读写临时数据。 两者的唯一区别是 php://memory 总是把数据储存在内存中, 而 php://temp 会在内存量达到预定义的限制后(默认是 2MB)存入临时文件中。 临时文件位置的决定和 sys_get_temp_dir() 的方式一致。php://filterphp://filter 是一种元封装器, 设计用于数据流打开时的筛选过滤应用。 这对于一体式(all-in-one)的文件函数非常有用,类似 readfile()、 file() 和 file_get_contents(), 在数据流内容读取之前没有机会应用其他过滤器。参数如下:如下例:?

关于php怎么看请求数据流和php 数据流的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

本文转载自互联网,如有侵权,联系删除