Я думаю, что вместо
ob_get_flush()
Вы хотите
$var = ob_get_clean();
file_put_contents("$server.txt", $var);
Выражаясь все Снегурочка вам нужно будет сделать это
while ($row = mysql_fetch_assoc($result)) {
ob_start();
var_dump($row);
file_put_contents("$server.txt",ob_get_clean());
}
http://php.net/manual/en/function.ob-get-clean.php
Получить текущее содержимое буфера и удалить текущий выходной буфер ... Возвращает содержимое буфера вывода и завершения выходного буферирования. Если буферизация вывода не активна, возвращается FALSE.
end output buffering
-УКАЗАНИЕ- поэтому мы должны перезапустить его ob_start()
на каждой итерации цикла.
Для ob_get_flush()
Выходной буфер должен быть запущен ob_start() с флагом PHP_OUTPUT_HANDLER_FLUSHABLE. В противном случае ob_get_flush() не будет работы.
Это не может быть лучшим подходом к вашей цели. В качестве альтернативного метода, вы можете использовать этот Funciton
function getVarType($var, $escapeHtml = true){
$strArg = 'unknown';
switch (gettype($var)){
case 'boolean':
return ($var ? 'true' : 'false');
case 'integer':
return intval($var);
case 'double':
return floatval($var);
case 'string':
if($escapeHtml){
$var = htmlentities($var, ENT_NOQUOTES, 'UTF-8', false);
}
return "'".$var."'";
case 'resource':
return 'Resource id #'.intval($var);
case 'NULL':
return 'NULL';
case 'array':
return "Array";
case 'object':
return 'Object('.get_class($var).')';
case 'unknown type':
default:
return'UNKNOWN TYPE';
}
}
$row = array_map('getVarType', $row);
Однако я думаю, что в PHP 7 они полностью параметры для отображения массива. Это из класса обработки исключений/ошибок, который я только что написал, вы можете изменить его, чтобы более точно сопоставить var_dump, если хотите. В настоящее время он настроен на соответствие распечатке трассировки стека исключений.
Кстати, если вы хотите действительно убийца класс debuggin, вы можете использовать один из моих рамок
https://github.com/ArtisticPhoenix/Evo/blob/master/EVO/Debug.php
С некоторой небольшой модификацией может соответствовать вашим потребностям (возможно, немного избыточно)
Это то, что он выводит
$G = ['one'=>1, 'two' => 2, 3=>['foo', 'bar']];
EVO_Debug::dump($G);
==================================== EVO_DEBUG::DUMP =====================================
Output from FILE[ C:\UniServerZ\www\Evo\EVO\bootstrap.php ] on LINE[ 72 ]
------------------------------------------------------------------------------------------
array(3){
["one"] => int(1),
["two"] => int(2),
[3] => array(2){
[0] => string(3) "foo",
[1] => string(3) "bar",
},
}
==========================================================================================
Хотя вы хотите использовать
EVO_Debug::export($G);
Он также может выдавать частные свойства и константы классов. Я только размещаю ссылку, потому что это не тривиально иметь дело со всеми возможными типами переменных, и здесь здесь не помогает PHP, который не является типизированным.
Не делайте этого. Используйте формат * фактического * кодирования, например [JSON] (http://php.net/manual/en/function.json-encode.php). – Sammitch
Не надо. Используйте фактический формат кодировки, такой как JSON. ??? как ?? –
попробуйте 'ob_start()', а затем 'ob_get_clean();' – ArtisticPhoenix