PHP Console工具使用分享
PHP Console工具使用分享
http://www.open-open.com/lib/view/open1416193590414.html
您的评价: |
|
不错
|
收藏该经验
|
PHP Console:https://github.com/barbushin/php-console#php-console-server-library
功能介绍
PHP Console工具和FirePHP功能相似,提供以下功能:
Handle PHP errors, dump variables, execute PHP code remotely in Google Chrome
Demo
首先在Chrome中安装PHP Console插件:
https://chrome.google.com/webstore/detail/php-console/nfhmhhlpfleoednkpnnnkolmclajemef
其次在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' ); |
输出调试信息到控制台,如下图:
原理介绍
PHP Console工具通过将调试信息输出到http响应头PHP-Console,然后PHP Console插件分析响应头PHP-Console字符串输出相应调试信息。
附录
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' ); |
此时可以看到只有当客户端输入正确的密码:
此时响应头部才会输出相应的调试信息:
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
PHP Console工具使用分享的更多相关文章
- .Net Excel 导出图表Demo(柱状图,多标签页) .net工具类 分享一个简单的随机分红包的实现方式
.Net Excel 导出图表Demo(柱状图,多标签页) 1 使用插件名称Epplus,多个Sheet页数据应用,Demo为柱状图(Epplus支持多种图表) 2 Epplus 的安装和引用 新建一 ...
- 手机游戏渠道SDK接入工具项目分享(二)万事开头难
一般接到任务后程序员们通常都开始着手进行技术调研了,但我这活是项目负责人.还有一大堆事情要先期准备,没人能帮忙. 一.人力配置 考虑的之前已经有一波人搞了大半年,但没有起色,先期也没有太大人力需求,所 ...
- 手机游戏渠道SDK接入工具项目分享(三)拨开云雾是个坑
一直在纠结是先写框架设计还是先写掉过的坑,最后本这娱乐大众的态度先写掉过的坑让大家乐呵下. 项目开发过程中遇问题无数,回顾下8个大坑照成了项目一定程度上延期甚至返工. 项目一开始几个人把现有3家主流的 ...
- 手机游戏渠道SDK接入工具项目分享(一)缘起
#剧情章节 # 上周刚结束一个外包的项目,开发手机游戏渠道SDK聚合接入工具的,现在有空回顾整理一下这个项目开发过程,因涉嫌商业秘密不会提供项目代码,只谈下开发思路和掉过的坑. 本人多年从事手机互联网 ...
- UWP 手绘视频创作工具技术分享系列
开篇先来说一下写这篇文章的初衷. 初到来画,通读了来画 UWP App 的代码,发现里面确实有很多比较高深的技术点,同时也是有很多问题的,扩展性,耦合,性能,功能等等.于是我们决定从头重构这个产品,做 ...
- UWP 手绘视频创作工具技术分享系列 - 全新的 UWP 来画视频
从2017年11月开始,我们开始规划和开发全新的来画Pro,在12月23日的短视频峰会上推出了预览版供参会者体验,得到了很高的评价和关注度.吸取反馈建议后,终于在2018年1月11日正式推出了全新版本 ...
- Loom工具使用分享
Unity多线程(Thread)和主线程(MainThread)交互使用类——Loom工具分享 时间 2014-03-09 11:04:04 ITeye-博客 原文 http://dsqiu.it ...
- C# 正则表达式测试工具与分享窗体自适应类
放假刚回来,自己打算写一个正则表达式的测试工具,因为上次在网上用的一个在线正则表示测试工具就 没有很好的服务自己的,所以才有了现在的想法,想写一个C#开发者用的正则表达式测试工具!期间由于最大化时控件 ...
- as3 工具类分享 CookieMgr
今天分享一个工具类 CookieMgr,功能就是读取和写入 SharedObject 对象.很简单,都是静态方法,就不多说了 package org.polarbear.core { import f ...
随机推荐
- Inno setup 简单打包教程
转自:http://blog.csdn.net/ruifangcui7758/article/details/6662646 前段时间关注了VC6.0自带的Installshield打包的使用方法,感 ...
- visible,invisible,gone区别
在Android开发中,大部分控件都有visibility这个属性,其属性有3个分别为“visible ”.“invisible”.“gone”.主要用来设置控制控件的显示和隐藏.有些人可能会疑惑In ...
- Python开发的10个小贴士
下面是十个Python中很有用的贴士和技巧.其中一些是初学这门语言常常会犯的错误. 注意:假设我们都用的是Python 3 1. 列表推导式 你有一个list:bag = [1, 2, 3, 4, 5 ...
- coalesce
coalesce我理解就是将多个partition合并成少量的partition. data.coalesce(2,true) 第一个参数是partition数量 第二个参数是合并是是否进行shuff ...
- CodeForces 433C Ryouko's Memory Note-暴力
Ryouko's Memory Note Time Limit:1000MS Memory Limit:262 ...
- hud 1785 畅通工程
#include<iostream> #include<stdio.h> #include<algorithm> #include<math.h> us ...
- Spring的profile属性
使用示例 //注解方式 public class DataSourceConfig { @Bean @Profile("prod") public DataSource dataS ...
- Xamarin.Forms项目无法添加服务引用
Xamarin.Forms项目无法添加服务引用 创建的Xamarin.Forms项目中,右击“引用”选项,在弹出的菜单中没有“添加服务引用”命令.这是由于该项目是支持Windows Phone 8.1 ...
- 简单几何(求凸包点数) POJ 1228 Grandpa's Estate
题目传送门 题意:判断一些点的凸包能否唯一确定 分析:如果凸包边上没有其他点,那么边想象成橡皮筋,可以往外拖动,这不是唯一确定的.还有求凸包的点数<=2的情况一定不能确定. /********* ...
- BZOJ3672 : [Noi2014]购票
设d[i]表示i到1的距离 f[i]=w[i]+min(f[j]+(d[i]-d[j])*v[i])=w[i]+d[i]*v[i]+min(-d[j]*v[i]+f[j]) 对这棵树进行点分治,每次递 ...