PHP 后端调试输出方法(笨办法)

24 篇文章 2 订阅
在调试web网站的时候,可以用var_dump()print_r()输出数据来进行程序的简单调试。

dump()函数是thinkphp 自定义的调试输出函数

var_dump()PHP自带的调试输出函数,此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。

pirnt_r()PHP自带的输出函数,显示关于一个变量的易于理解的信息。如果给出的是 stringintegerfloat,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素

简单封装下var_dump()输出信息

function p($var){
    echo '<pre>';
    echo var_dump($var);
    echo '<pre>';
}

pirnt_r($var)更多用于调试输出数组信息

function p($var){
    echo '<pre>';
    echo pirnt_r($var);
    echo '<pre>';
}

在调试前后端分离的程序的时候,PHP版本<=5.6(PHP版本>=7.0,可以使用composer加载个日写本地日志的包就可以调试输出程序),调试后端程序会感到相当吃力,不知道如何输出调试变量等信息,解决方法的核心思想也是写本地文件,输出日志型信息,笨人笨办法,我相信有更好的调试方法,高端玩法待学会后再记录吧。下面提供三种输出到文件的方式:

//输出变量或数组到文件
//Tips:Linux注意目录和文件要有写权限
//chmod 775 -R ./  # 前方命令是Linux中递归更能改当前目录及子目录读写权限
$fp = fopen('./a.txt', 'a+b');
fwrite($fp, print_r($content, true));
fclose($fp);
 
 
//打印单个变量到文件
error_log($file, 3, "/tmp/php_3.log");
 
 
//输出对象到文件
file_put_contents("/tmp/qujun_php2.log", var_export($objects,true), FILE_APPEND);
file_put_contents("/tmp/qujun_php2.log", json_encode($objects), FILE_APPEND);	//把对象换成json格式

file_put_contents("../ttt.log", var_export($data,true), FILE_APPEND);
file_put_contents("../ttt.log", json_encode($data,true), FILE_APPEND);	//把对象换成json格式

//输出内容换行
file_put_contents("../ttt.log", $data.PHP_EOL, FILE_APPEND);

很多时候记录日志需要换行。

不建议使用\r\n

因为:在windows\r\n是换行
Mac\r是换行
Liunx\n是换行
但是PHP提供了一个常量来匹配不同的操作系统,即:PHP_EOL

Linux中查看日志文件可以使用tail命令

# 当日志qujun_php2.log内容更新时,内容输出到控制台
tail -f /tmp/qujun_php2.log

参考 :
http://blog.51cto.com/qujunorz/1940787
http://php.net/docs.php
http://php.net/manual/zh/function.var-dump.php
http://php.net/manual/zh/function.print-r.php
https://blog.csdn.net/wlzx120/article/details/53781813

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值