Буфер вывода выводит пустую строку длиной 2560 символов - PullRequest
0 голосов
/ 17 февраля 2020

Я сбрасываю переменные с:

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

Я пытался использовать функцию flu sh и другие выходные с безрезультатно.

1 Ответ

1 голос
/ 17 февраля 2020

Строка не пустая. Это 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, все символы будут видны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...