当与var_dump一起使用时,ob_get_clean和ob_get_contents将内容返回到屏幕而不是将其放入变量

时间:2010-12-05 18:26:09

标签: php-5.3 php

我使用此函数进行调试:

function d($v,$tofile=null) {
    static $wasused;
    ob_start();
    var_dump($v);
    $dump = ob_get_clean();
    if (is_array($v)) $dump = preg_replace("@=>\n@",'=>',$dump);
    if (strlen($dump)>1000 or $tofile) {
        fileput('debug.txt',$dump,$wasused);
        echo n.n."strlen=".strlen($dump)."   >> debug.txt".n.n;
    }
    elseif (strlen($dump)<80) echo $dump;
    else echo n.n.$dump.n.n;
    $wasused=true;
}

问题是它有时会将内容返回到控制台,特别是当这个内容是大数组上的var_dump结果时,

你之前有没有人见过这个问题?

2 个答案:

答案 0 :(得分:0)

如果这在您的php.ini

implicit_flush = On

将其更改为:

implicit_flush = Off

答案 1 :(得分:0)

在假设var_dump本身存在问题之前,需要验证fileput()是否完全符合问题所暗示的内容。