V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kisshere
V2EX  ›  PHP

php 中的中间变量调试打印出来,众 V2er 们怎么处理的?

  •  
  •   kisshere · 2015-01-24 17:31:21 +08:00 · 4409 次点击
    这是一个创建于 3379 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一般的php中的中间变量,直接echo出来就行了,但遇到一些Ajax的例子,或者不能直接echo出来的中间变量,想要知道其具体值是多少,该怎么调试?我一般用的file_put_contents到一个txt文件中,但又感觉好麻烦,有没有更好的办法?

    25 条回复    2015-01-30 22:18:34 +08:00
    andy12530
        1
    andy12530  
       2015-01-24 17:34:46 +08:00 via iPhone
    断点
    kisshere
        2
    kisshere  
    OP
       2015-01-24 17:35:13 +08:00
    @andy12530 能具体点吗?
    demonchang
        3
    demonchang  
       2015-01-24 17:36:09 +08:00
    - -! 做等围观其他方法。。。
    ccbikai
        4
    ccbikai  
       2015-01-24 17:42:07 +08:00 via Android   ❤️ 1
    tail -f log.txt
    kn007
        5
    kn007  
       2015-01-24 17:42:30 +08:00
    mark,围观,
    kn007
        6
    kn007  
       2015-01-24 17:42:47 +08:00
    @ccbikai ..我也是
    Jat001
        7
    Jat001  
       2015-01-24 17:44:38 +08:00
    @kisshere exit 啊……
    Sunyanzi
        8
    Sunyanzi  
       2015-01-24 17:45:33 +08:00
    我的框架提供三种 log 方式 ... 第一种页面输出 ... 第二种 header 输出 ... 第三种文件输出 ...

    我觉得无论如何都够用了 ... 不想影响页面就输出到 header 好了 ...
    Felldeadbird
        9
    Felldeadbird  
       2015-01-24 18:00:03 +08:00
    console.log / console.dir 楼主说的ajax吗
    jevonszmx
        10
    jevonszmx  
       2015-01-24 18:09:59 +08:00
    很多方法啊,笨的就是firebug看请求,要不就是加断点在ide调试看内容,要不就是加log方法写到log里面去(很多框架带这个功能,加了log($var, '这个是ajax的log')就写进去了log文件),麻烦点就是装个FirePHP看。
    mcfog
        11
    mcfog  
       2015-01-24 18:11:12 +08:00
    http://phpdebugbar.com/ 和monolog一起。 ajax的话可以配storage把请求的各种情况持久化下来

    简直犀利
    wy315700
        12
    wy315700  
       2015-01-24 18:17:33 +08:00
    var_dump
    kongkongyzt
        13
    kongkongyzt  
       2015-01-24 19:30:23 +08:00
    不是可以 var_dump()嘛....
    kisshere
        14
    kisshere  
    OP
       2015-01-24 19:31:56 +08:00
    @kongkongyzt 我的意思是 怎样将这个变量显示出来?不是显示这个变量有哪些属性
    quericy
        15
    quericy  
       2015-01-24 19:49:00 +08:00
    ajax的话一般var_dump然后exit,接着chrome用F12抓包看
    loveyu
        16
    loveyu  
       2015-01-24 20:45:20 +08:00
    var_dump 然后 F12看包
    towser
        17
    towser  
       2015-01-24 21:00:14 +08:00
    罗飞用node.js写了个socketlog,可以在console输出调试信息,可以一用
    soulteary
        18
    soulteary  
       2015-01-24 21:04:26 +08:00
    @jevonszmx 说的蛮详细了,不开远程调试,firebug解决一切问题,如果遇到服务器前端软件过滤问题,可以记录log。
    hitsmaxft
        19
    hitsmaxft  
       2015-01-24 22:52:00 +08:00
    既然是 ajax 请求, 可以直接http访问, 和页面有什么区别, post 语句就用工具构造呗。
    revlis7
        20
    revlis7  
       2015-01-24 23:32:55 +08:00
    error_log($message, 3, '/tmp/debug.log');
    xwsoul
        21
    xwsoul  
       2015-01-24 23:42:21 +08:00
    自己用html写了个 post debug
    自己生成表单, 选择提交, 提交一旦成功了不是直接刷浏览器就行了么?
    msg7086
        22
    msg7086  
       2015-01-25 08:46:27 +08:00
    一般也就是put-contents吧,无脑输出然后tail -f跟踪一下就好了。
    jsq2627
        23
    jsq2627  
       2015-01-25 13:54:26 +08:00
    xdebug

    整套解决方案 https://www.jetbrains.com/phpstorm/
    linkdesu
        24
    linkdesu  
       2015-01-27 10:29:34 +08:00
    @jsq2627 的方案就比较不错~~Phpstorm自带的调试功能灰常强大~~除此以外我还推荐php console https://github.com/barbushin/php-console ~~以及使用 monolog 把日志输出到 chrome logger~~多用日志少调试~~
    wuwx
        25
    wuwx  
       2015-01-30 22:18:34 +08:00
    ajax 也照样强制打出来……
    作为注释送到浏览器看去
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4250 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 123ms · UTC 01:02 · PVG 09:02 · LAX 18:02 · JFK 21:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.