Php 将var_dump从文本文件保存到多服务器ip的文本文件中
这是sql查询的php代码, 如果我有多个sql服务器到文本文件,我想从这个文件得到服务器。 如何将每个服务器的var_转储保存到“serverip.txt”中Php 将var_dump从文本文件保存到多服务器ip的文本文件中,php,mysql,sql,var-dump,Php,Mysql,Sql,Var Dump,这是sql查询的php代码, 如果我有多个sql服务器到文本文件,我想从这个文件得到服务器。 如何将每个服务器的var_转储保存到“serverip.txt”中 我有这个错误 警告:文件\u put\u contents(ServerIp.txt)[function.file put contents]:无法打开流:第24行的C:\AppServ\www\connectdb.php中的参数无效 也许可以使用更精确的方法,比如print\r,它有一种存储输出的模式 while ($row =
我有这个错误
警告:文件\u put\u contents(ServerIp.txt)[function.file put contents]:无法打开流:第24行的C:\AppServ\www\connectdb.php中的参数无效
也许可以使用更精确的方法,比如
print\r
,它有一种存储输出的模式
while ($row = mysql_fetch_assoc($result)) {
file_put_contents("$server.txt", print_r($row, true));
}
也许可以使用更精确的方法,比如
print\r
,它有一种存储输出的模式
while ($row = mysql_fetch_assoc($result)) {
file_put_contents("$server.txt", print_r($row, true));
}
我想不是
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());
}
获取当前缓冲区内容并删除当前输出缓冲区。。。
返回输出缓冲区和结束输出缓冲区的内容。如果输出缓冲未激活,则返回FALSE
-注意-end output buffering
这就是为什么我们需要在循环的每次迭代中重新启动它ob_start()
对于ob\u get\u flush()
输出缓冲区必须由ob_start()以
PHP_输出_处理程序_可刷新标志。否则ob_get_flush()将不会
工作
也就是说,这可能不是实现目标的最佳途径。作为替代方法,您可以使用此函数
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 );
然而,我认为在PHP7中,它们反转了数组映射的参数。这是我刚刚编写的一个异常/错误处理类,如果需要,可以对其进行修改,使其更接近var_dump。目前,它的设置与异常堆栈跟踪打印输出相匹配
顺便说一句,如果你想要一个真正杀手级的debuggin类,你可以使用我框架中的一个
稍加修改,它可能会适合您的需要(可能有点过分)
这就是它的输出
$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是非类型语言,这一点也没有帮助 我认为不是
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());
}
获取当前缓冲区内容并删除当前输出缓冲区。。。
返回输出缓冲区和结束输出缓冲区的内容。如果输出缓冲未激活,则返回FALSE
-注意-end output buffering
这就是为什么我们需要在循环的每次迭代中重新启动它ob_start()
对于ob\u get\u flush()
输出缓冲区必须由ob_start()以
PHP_输出_处理程序_可刷新标志。否则ob_get_flush()将不会
工作
也就是说,这可能不是实现目标的最佳途径。作为替代方法,您可以使用此函数
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 );
然而,我认为在PHP7中,它们反转了数组映射的参数。这是我刚刚编写的一个异常/错误处理类,如果需要,可以对其进行修改,使其更接近var_dump。目前,它的设置与异常堆栈跟踪打印输出相匹配
顺便说一句,如果你想要一个真正杀手级的debuggin类,你可以使用我框架中的一个
稍加修改,它可能会适合您的需要(可能有点过分)
这就是它的输出
$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这样的实际编码格式???如何??尝试
ob_start()
然后ob_get_clean()
您之前发布了一个类似的问题,并使用了Barmar答案的语法file_put_contents(“dump.txt”,ob_get_flush())代码>并接受它。如果这个答案在当时产生了同样的错误,你为什么接受这个答案而不告诉他这个错误?你只是让他看看你的新问题。我通常不这样使用输出缓冲,但我认为主要的问题是这个<代码>输出缓冲区必须由带有PHP_output_HANDLER_FLUSHABLE标志的ob_start()启动。否则ob\u get\u flush()将不起作用。
如ob\u start(null,0,PHP\u OUTPUT\u HANDLER\u FLUSHABLE)
不起作用。使用实际的编码格式,如。不要。使用像JSON这样的实际编码格式???如何??尝试ob_start()
然后ob_get_clean()
您之前发布了一个类似的问题,并使用了Barmar答案的语法file_put_contents(“dump.txt”,ob_get_flush())代码>并接受它。如果这个答案在当时产生了同样的错误,你为什么接受这个答案而不告诉他这个错误?你只是让他看看你的新问题。我通常不这样使用输出缓冲,但我认为主要的问题是这个<代码>输出缓冲区必须由带有PHP_output_HANDLER_FLUSHABLE标志的ob_start()启动。否则ob_get_flush()将不起作用。
如ob_start(null,0,PHP_OUTPUT_HANDLER_FLUSHABLE)
good point Fred。另外,我不认为这是保存数据的最佳方式。我想自己设置一些东西,但是,我太累了。在晚上的这个时候,我的脑袋乱糟糟的。我有类似的想法,但它的设置是为了输出修剪过的异常堆栈跟踪。基本上,我的框架中有几个调用总是相同的,所以我想将它们从stacktrace中删除,但是异常类getraceasstring
是final,因此没有重载它。所以我删减它,然后从普通数组版本创建我自己的字符串堆栈跟踪。基本上,这是一种获取stacktrace进行调试的方法,类似于exception类输出。另外,我不认为这是保存数据的最佳方式。我想自己做一些设置