输出缓冲转储空字符串,长度为2560个字符

问题描述 投票:0回答:1

我正在使用以下命令转储变量:

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) " "

我尝试使用冲洗功能和其他无用的输出功能。

php output-buffering
1个回答
0
投票

字符串不为空。它是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,则所有字符都将可见。

© www.soinside.com 2019 - 2024. All rights reserved.