我有一个PHP脚本,它对大型XML文件进行排序,然后使用var_dump()将XML内容反射回命令行。有时XML文件非常大,然后您无法向上滚动查看所有内容。
在将内容打印到终端之前,我想知道在我的XML数组上调用var_dump()是否会超出终端窗口显示。
1)有没有办法获得将从var_dump($my_xml_array)
显示的行数?
2)你有什么建议吗?
答案 0 :(得分:1)
您应该使用var_export而不是var_dump
,这允许您将其输出存储在变量中,而不是使用以下内容进行打印:
$var_out = var_export($some_var, true);
// now check & compare size of $var_out with terminal size
答案 1 :(得分:0)
两个步骤:
使用exec()调用获取终端中的行数
tput lines
使用var_export()作为anubhava提及来获取var_dump的大小。
把这两个放在一起继续。
<?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";
希望这可以解决问题!