php本地浏览器调试,php浏览器端调试输出方法

1、利用js打印到浏览器控制台

function console_log($data)

{

if (is_array($data) || is_object($data))

{

echo("");

}

else

{

echo("");

}

}

其实质上就是在页面里加入了一段javascript的脚本,利用

console.log() 函数输出信息到控制台,如上方法打印出来都是字符串形式,如果将单引号去掉,PHP的数组和对象将以JS对象的方式打印出来,即echo("");,究竟使用哪一种看你喜欢的方式了。

如上就是最简单的实现方式了,但这么做有一点不太好,就是输出的很凌乱,如果你在不同的位置都调用了该函数,那么在页面的各个位置都将插入一段

//注册一个shutdown函数,如果不这么做的话记得在程序最后echo Console_log::fetch_output();

register_shutdown_function('my_shutdown');

function my_shutdown()

{

echo Console_log::fetch_output();

}

class Console_log {

private static $output = '';

static function log($data)

{

if (is_array($data) || is_object($data))

{

$data = json_encode($data);

}

ob_start();

?>

<?php if (self::$output === ''):?>

<?php endif;?>

console.log('<?=$data;?>');

<?php

self::$output .= ob_get_contents();

ob_end_clean();

}

static function fetch_output()

{

if (self::$output !== '')

{

self::$output .= '';

}

return self::$output;

}

}

Console_log::log(array(1,2));

echo '111111';

Console_log::log('test');

2、利用页头信息输出调试数据

function console_log($data)

{

if (is_array($data) || is_object($data))

{

echo("");

}

else

{

echo("");

}

}

function callback($buffer)

{

// replace all the apples with oranges

//header("debug_data: ".json_encode('1=2'));

//return (str_replace("1=2", "", $buffer));

$regex4="/

(.*?)/ism";

if(preg_match_all($regex4, $buffer, $matches)){

$ret = str_replace($matches[0][0], "", $buffer);

header("debug_data: ".json_encode($matches[1][0]));

$debug_data = json_encode($matches[1][0]);

}else{

$ret = $buffer;

}

return $ret;

}

register_shutdown_function('my_shutdown');

function my_shutdown()

{

console_log('debug');

}

ob_start("callback");

?>

$title=<?php echo $title;?>

It's like comparing apples to oranges.

3、 firebug+firephp+FirePHP库调试PHP原理

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

4、修改http请求头,后台根据$_SERVER['HTTP_TEST_HEADER_NAME']设置判断处理是否开启调试模式,结合方法3 if (isset($_SERVER['HTTP_TEST_HEADER_NAME']) && $_SERVER['HTTP_TEST_HEADER_NAME'] == 'test-header-value'){

$firephp

->setEnabled(true); }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值