博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP Console工具使用分享
阅读量:6412 次
发布时间:2019-06-23

本文共 2437 字,大约阅读时间需要 8 分钟。

PHP Console工具使用分享

http://www.open-open.com/lib/view/open1416193590414.html

您的评价:
     
不错
 收藏该经验    

阅读目录

 

PHP Console:

功能介绍

PHP Console工具和FirePHP功能相似,提供以下功能:

Handle PHP errors, dump variables, execute PHP code remotely in Google Chrome

Demo

首先在Chrome中安装PHP Console插件:

其次在PHP代码中引入PHP Console库,然后调用输出相应调试信息:

如下例index2.php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
  
require_once
(__DIR__ . 
'/../src/PhpConsole/__autoload.php'
);
  
// Call debug from PhpConsole\Handler
$handler
= PhpConsole\Handler::getInstance();
$handler
->start();
$handler
->debug(
'called from handler debug'
'some.three.tags'
);
  
$array
array
(
    
'test'
=> 1,
    
'test2'
=> 1,
    
'key'
=> 
array
(
        
1, 2, 3, 4,
    
), 
);
$handler
->debug(
$array
'test.wiki.wade.zhan'
);

输出调试信息到控制台,如下图:

20141028202013805.png

原理介绍

PHP Console工具通过将调试信息输出到http响应头PHP-Console,然后PHP Console插件分析响应头PHP-Console字符串输出相应调试信息。

20141028202101906.png

 

附录

PHP Console提供了通过密码来保护调试信息的功能,如下例,在服务器端设置密码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
  
require_once
(__DIR__ . 
'/../src/PhpConsole/__autoload.php'
);
  
$password
'test'
;
$connector
= PhpConsole\Connector::getInstance();
$connector
->setPassword(
$password
);
  
// Call debug from PhpConsole\Handler
$handler
= PhpConsole\Handler::getInstance();
$handler
->start();
$handler
->debug(
'called from handler debug'
'some.three.tags'
);
  
$array
array
(
    
'test'
=> 1,
    
'test2'
=> 1,
    
'key'
=> 
array
(
        
1, 2, 3, 4,
    
), 
);
$handler
->debug(
$array
'test.wiki.wade.zhan'
);

此时可以看到只有当客户端输入正确的密码:

20141028204037953.png

此时响应头部才会输出相应的调试信息:

1
2
3
4
5
6
7
8
9
HTTP
/1
.1 200 OK
Server: Tengine
/2
.0.3
Date: Tue, 28 Oct 2014 12:36:04 GMT
Content-Type: text
/html
Connection: keep-alive
X-Powered-By: PHP
/5
.3.29
PHP-Console-Postpone: {
"protocol"
:5,
"isPostponed"
:
true
,
"id"
:
"6957661441226218549514727634"
}
PHP-Console: {
"protocol"
:5,
"auth"
:{
"publicKey"
:
"bf802ef9f6d61a5d4a720892a79bf8285d92c31c2a99be2931b504dc54eeb209"
,
"isSuccess"
:
true
},
"docRoot"
:
"\/usr\/local\/wwwroot\/dokuwiki"
,
"sourcesBasePath"
:null,
"getBackData"
:null,
"isLocal"
:
false
,
"isSslOnlyMode"
:
false
,
"isEvalEnabled"
:
false
,
"messages"
:[{
"type"
:
"debug"
,
"tags"
:[
"some"
,
"three"
,
"tags"
],
"data"
:
"called from handler debug"
,
"file"
:null,
"line"
:null,
"trace"
:null},{
"type"
:
"debug"
,
"tags"
:[
"test"
,
"wiki"
,
"wade"
,
"zhan"
],
"data"
:{
"test"
:1,
"test2"
:1,
"key"
:[1,2,3,4]},
"file"
:null,
"line"
:null,
"trace"
:null}]}
Content-Length: 0
来自:http://blog.csdn.net/billfeller/article/details/40554625
你可能感兴趣的文章
redhat下搭建LAMP架构
查看>>
GitHub详细教程
查看>>
raid技术的读与想
查看>>
Hbase 中Column Family 的作用
查看>>
用鸡讲解技术债务的形成过程?
查看>>
Linux下的Tftp服务
查看>>
C#将集合和Json格式互相转换的几种方式
查看>>
java连接数据库并操作
查看>>
集群下文件同步问题
查看>>
ASA 5510 V821 EASY ×××配置
查看>>
ubuntu server 更换源
查看>>
EXT中的gridpanel自适应窗口的方法
查看>>
unary operator expected
查看>>
IPC之共享内存
查看>>
新加坡之旅
查看>>
IBM X3650 M3服务器上RAID配置实战
查看>>
Mysql DBA 高级运维学习之路-索引知识及创建索引的多种方法实战
查看>>
go语言与java nio通信,解析命令调用上下文拉起ffmpeg,并引入livego做的简单流媒体服务器...
查看>>
JavaScript面向对象轻松入门之多态(demo by ES5、ES6、TypeScript)
查看>>
【数据结构】线性表(一):顺序列表
查看>>