PHP:如何判断var_Dump()是否会超出终端window显示?
PHP: How to determine if var_Dump() will exceed the terminal window display?
我有一个 PHP 脚本,它可以对大型 XML 文件进行排序,然后使用 var_dump() 将 XML 内容吐回命令行。有时 XML 文件非常大,您无法向上滚动查看所有内容。
在将内容打印到终端之前,我想知道在我的 XML 数组上调用 var_dump() 是否会超出终端 window 显示。
1) 有没有办法从 var_dump($my_xml_array)
中获取要显示的行数?
2) 你有什么建议吗?
您应该使用 var_export 而不是 var_dump
,这样您就可以将其输出存储在一个变量中,而不是使用以下方式打印它:
$var_out = var_export($some_var, true);
// now check & compare size of $var_out with terminal size
两步:
使用 exec() 调用获取终端中的行数
tput lines
通过使用 var_export() 获得 var_dump 的尺寸,正如 anubhava 提到的那样。
把这两个放在一起继续。
<?php
/**
* get lines of terminal
*/
exec("tput lines", $exec_return);
$number_of_terminal_lines = $exec_return[0];
/**
* get lines of var dump
*/
$test_array = array("foo"=>"bar", "baz"=>"quux");
$test_array_var_dump_string = var_export($test_array,true);
$test_array_var_dump_string_lines = substr_count( $test_array_var_dump_string, "\n" );
print "number of lines in terminal $number_of_terminal_lines\n";
print "number of lines in var dump $test_array_var_dump_string_lines\n";
希望这能奏效!
我有一个 PHP 脚本,它可以对大型 XML 文件进行排序,然后使用 var_dump() 将 XML 内容吐回命令行。有时 XML 文件非常大,您无法向上滚动查看所有内容。
在将内容打印到终端之前,我想知道在我的 XML 数组上调用 var_dump() 是否会超出终端 window 显示。
1) 有没有办法从 var_dump($my_xml_array)
中获取要显示的行数?
2) 你有什么建议吗?
您应该使用 var_export 而不是 var_dump
,这样您就可以将其输出存储在一个变量中,而不是使用以下方式打印它:
$var_out = var_export($some_var, true);
// now check & compare size of $var_out with terminal size
两步:
使用 exec() 调用获取终端中的行数
tput lines
通过使用 var_export() 获得 var_dump 的尺寸,正如 anubhava 提到的那样。
把这两个放在一起继续。
<?php
/**
* get lines of terminal
*/
exec("tput lines", $exec_return);
$number_of_terminal_lines = $exec_return[0];
/**
* get lines of var dump
*/
$test_array = array("foo"=>"bar", "baz"=>"quux");
$test_array_var_dump_string = var_export($test_array,true);
$test_array_var_dump_string_lines = substr_count( $test_array_var_dump_string, "\n" );
print "number of lines in terminal $number_of_terminal_lines\n";
print "number of lines in var dump $test_array_var_dump_string_lines\n";
希望这能奏效!