输出缓冲转储空字符串,2560 个字符长
Output Buffering dumps empty string, 2560 char long
我正在转储变量:
ob_start(null, 4096);
define('SITERNDNUM', rand(10000000,99999999));
// other declarations and vars
Session::init();
//
$output_ob = ob_get_contents();
var_dump($output_ob);
我得到的所有输出是:
string(2560) " "
我试过使用冲洗功能和其他输出功能,但没有用。
字符串不为空。它有 2560 个字节长。 var_dump() 无法显示所有字符并取消某些字符的输出。
供您理解:
$str = "\x00\x01\x02\n";
var_dump($str); //string(4) " "
十六进制表示法有助于使所有字节可见。
function strhex($s){
return $s != '' ? '\x'.implode('\x',str_split(bin2hex($s),2)) : '';
}
$str = "\x00\x01\x02\n";
echo strhex($str); // \x00\x01\x02\x0a
如果您使用此功能而不是 var_dump,所有字符都将可见。
我正在转储变量:
ob_start(null, 4096);
define('SITERNDNUM', rand(10000000,99999999));
// other declarations and vars
Session::init();
//
$output_ob = ob_get_contents();
var_dump($output_ob);
我得到的所有输出是:
string(2560) " "
我试过使用冲洗功能和其他输出功能,但没有用。
字符串不为空。它有 2560 个字节长。 var_dump() 无法显示所有字符并取消某些字符的输出。
供您理解:
$str = "\x00\x01\x02\n";
var_dump($str); //string(4) " "
十六进制表示法有助于使所有字节可见。
function strhex($s){
return $s != '' ? '\x'.implode('\x',str_split(bin2hex($s),2)) : '';
}
$str = "\x00\x01\x02\n";
echo strhex($str); // \x00\x01\x02\x0a
如果您使用此功能而不是 var_dump,所有字符都将可见。