`

Qse_XDebug -- Firefox 的PHP调试控制台

阅读更多
写道
/**
* Firefox 的PHP调试控制台,firephp要求FF3.5+PHP5才能使用
* 很麻烦,这里自己实现一个类似的功能
* firebug 日志信息: http://getfirebug.com/logging
*/

 

class Qse_XDebug {
	
	private $met_out = array(
		'log' => 'log' ,
		'debug' => 'debug' ,
		'info' => 'info' ,
		'warn' => 'warn' ,
		'error' => 'error' ,
		'time' => 'time' ,
		'timeEnd' => 'timeEnd' ,
		'profile' => 'profile' ,
		'profileEnd' => 'profileEnd' ,
		'trace' => 'trace' ,
		'group' => 'group' ,
		'groupEnd' => 'groupEnd' ,
		'dir' => 'dir' ,
		'dirxml' => 'dirxml' ,
	); 
	
	protected $info_store = array();

	public function __construct(){
		$this->group(get_class($this) . " 调试控制台");
	}
	
	private function js_text($js_code=null){
		return "{$js_code}\n" ;
	}
	
	function __call($funcname,$args){
		if (!empty($funcname) && isset($this->met_out[$funcname]))
		{
			$object = array(
				$funcname => $args
			);
			$this->insert_data($object);
		}
	}
	
	private function insert_data($object=null){
		array_push($this->info_store,$object);
	}
	
	function execute($returnvalue=false){
		$output = "<script>%s</script>" ;
		$content = '' ;
		foreach ($this->info_store as $info){
			if (!is_array($info)) continue ;
			foreach ($info as $met=>$args){				
				$str_args = $this->parse_values($args) ;
				$content .= $this->js_text("console.{$met}({$str_args});");	
			}
		}
		if ($return_value)
			return sprintf($output,$content) ;
		echo sprintf($output,$content) ;
	}
	
		private function parse_values($args){
		if (!is_array($args)) return '' ;
		$values = $val = '' ;		
		foreach ($args as $arg){			
			if (is_string($arg))
				$val = "'{$arg}'";
			else if(is_numeric($arg))
				$val = $arg ;
			else if(is_array($arg) || is_object($arg)){
				if (function_exists('json_encode'))
					$val = json_encode($arg);	
			}
			$values .= $val . ',' ;
		}
		
		return preg_replace('/,$/','',$values) ;
	}
}

 demo:

<?php 
	$xdebug->log("hellow world!");
 $xdebug->group("组测试");
 $xdebug->error("测试 %s ; 时间: %d","旅游景点",time());
 $xdebug->warn("hellow world!",'chouzhutou',array(1,2,4,QContext::instance()));
?>

 

  • 大小: 8.6 KB
1
0
分享到:
评论
1 楼 vb2005xu 2010-02-05  
我这个 很简单 无需安装客户端插件,以及无需firefox的版本要求,对对象或者数组输出json格式,方便在fb中查阅

相关推荐

    mashup_for_qse_saas

    【mashup_for_qse_saas】:这是一个与软件即服务(SaaS)相关的项目,可能涉及到了Web应用开发中的“Mashup”技术。Mashup是指通过整合多个在线服务或数据源来创建新的、单一的应用程序或网站。在这个项目中,...

    .721782519334174721_721782519355146241_100_44328877891f43cf1ab2c4e2cb71d1d8.zip

    标题和描述中提到的文件名看起来像是一种特定的命名规则,但没有足够的信息来解析这个规则的具体含义。不过,我们可以从文件的扩展名和上下文出发,探讨与这些文件相关的一些IT知识点。 首先,".zip"是文件压缩格式...

    QS-ASS-5t称重传感器.doc

    - **QSE-A/-SS 称重传感器**:如QSE-A-30klb、QSE-A-50klb等,针对更高精度的要求。 - **QSEB-A/-SS 称重传感器**:包括QSEB-A/-SS-25klb、QSEB-A/-SS-40klb等,适用于极端条件。 - **QSG/QSG-A 称重传感器**:例如...

    qse-开源

    QSE是一个应用程序,旨在帮助减少使用“ Spec”数据采集系统使用多元素检测器采集的EXAFS数据的数据减少的初始阶段。

    论文研究 - 妇科肿瘤乳腺肿瘤塑形乳房手术到国家拉巴特研究所

    结果:在列出的105个文件中,肿瘤的位置为:35%37/105 QSE,QSI QSE + 21/105或20%,QSI 19/105或18%,QSI 12/105或11%,其他地图16/105或16%。 该技术为肿瘤成形术:乳头切除术10/105或10%圆形块58/105或55...

    熵值法matlab代码-general-qse:利用多项式回归和马尔可夫链方法提取信号趋势的广义定性状态估计(QSE)

    保守值法matlab代码通用Qse 广义定性状态估计(QSE) 该脚本基于QSE算法,该算法由Mats在Kris Villez中实现。 它产生一个单数的定性概率估计,该概率表明该概率遵循某个形状(例如下降,上升,保持恒定等)。 通过...

    loan-calculator:贷款计算器-用于比较等额本息与等额本金两种贷款方式的区别

    php php/main.php --bj={本金} --ll={年利率} --qs={贷款期数} --cm={命令:非必填} --qse={提前还款期数:非必填} 使用举例 以贷款200w、年利率4.65%、贷款时间30年举例 计算两种贷款方式的详情,终端输出s php ...

    x-pack-5.6.4.jar

    elasticsearch的x-pack5.6.4的破解。 1.4.编译,重新打包jar包 。替换之前的jar包。 mv x-pack-5.6.2.jar /usr/share/elasticsearch/plugins/x-pack 2.配置新的license文件 可以自己去申请一个,它会绑定uuid,申请的...

    QS-ASS-25t称重传感器.doc

    除了QS-ASS-25T之外,文档还提到了一系列其他型号的称重传感器,包括但不限于QS/QS-A、QSB-A/-SS、QSC-A/-SS、QSF-A/-SS、QSE-A/-SS、QSEB-A/-SS、QSG/QSG-A、QSN/QSN-A及QSNB-A系列,这些传感器具有不同的承载能力...

    x-pack-5.6.2.jar

    elasticsearch的x-pack5.6.2的破解。 1.4.编译,重新打包jar包 。替换之前的jar包。 mv x-pack-5.6.2.jar /usr/share/elasticsearch/plugins/x-pack 2.配置新的license文件 可以自己去申请一个,它会绑定uuid,申请的...

    QSE:秦殇测试python读取资源

    "QSE:秦殇测试python读取资源"这个标题暗示了一个关于使用Python进行资源读取的测试项目,可能涉及到游戏开发或者数据处理场景。在这样的项目中,Python的灵活性和高效性使其成为理想的选择。 在描述中虽然没有...

    IBM tsm日常维护

    - 在LAN-Free模式下,由于直接磁带库访问机制,`qse`命令可能无法准确反映数据传输状态。此时,需登录至StorageAgentServer上,通过调整`dsm.opt`配置文件,并使用`dsmadmc`进入STA Server,来获取更精确的数据传输...

    夏普复印机维修手册(用于夏普复印机出现故障时)

    1. **GCOVH0010QSE4** - 这个部件可能属于外观或外部覆盖件的一部分,用于保护内部结构免受外部环境的影响。 2. **PSHEZ0058QSZ1** - 可能是操作部的一个组件,如按钮、控制面板等,提供用户与机器交互的界面。 3. *...

    爱之谷成人用品商城整站 for ECshop v2.7.3.zip

    这是网上分享的第一个带整站数据包的爱之谷模板,希望大家支持开发者“ecshop模板堂” 安装方法: 1,解压rar包上传到网站根目录 2,导入sql数据库文件,到你的数据库里,可以phpmyadmin等软件 ...

    简单CAD常用快捷键汇总大全可以打印出来做鼠标垫

    13. **快速查找 (QSE)** - 快速查找对象。 14. **捕捉设置 (OS)** - 设置捕捉选项。 15. **标注样式 (D)** - 设置标注样式。 16. **选项设置 (OP)** - 设置选项。 #### 六、三维建模快捷键 1. **长方体 (BOX)**...

    水环式真空泵检修安全技术规程.docx

    本规程依据《基础管理文件控制程序》第一版LK股QSE-01以及1992年出版的《医药工业设备维护检修规程》作为技术指导标准。此外,规程中还定义了一些专业术语,以便于相关人员准确理解规程内容。 #### 三、职责划分 ...

    C24-4生活建筑垃圾管理规定.docx

    为此,中港第一航务工程局第二工程公司制定了《生活建筑垃圾管理规定》(文件编号:QSE/HWE·C24-04-2003),旨在规范公司内部的生活建筑垃圾管理流程,保护环境,节约资源。 #### 二、目的 该规定的制定主要目的是...

    Springboot整和《人脸图像比对》api操作文档

    Springboot整和《人脸图像比对》api操作文档

    4800坐标基本型放样

    - **输入参数**:缓和曲线长度 (LS1, LS2), 起算点桩号 (QSDZHA), 方位角 (JFJ-HJ-QJ), 直缓桩号 (ZH), 坐标 (ON, OE, CN, CE, QSN, QSE), 圆曲线半径 (R), 转角 (I) 等。 - **计算流程**:根据输入的桩号 S,通过...

    mark-my-word:代码研究员项目 - iOS 和 JS

    GET /login 参数名称类型描述电子邮件细绳注册用户帐户的有效电子邮件地址密码细绳用户密码回复 {"token": "0beFEM3V1r9jM4RZ76o/qbG9Hs12codVsoKJ7Q8ibhi3871whxYc+/UBwCCYGq4b3mbL/ucZ02w0a0QsE6xRZIVVH+hqtgc="}...

Global site tag (gtag.js) - Google Analytics