我有一个PHP脚本,它对一个大XML文件进行排序,然后使用var_dump()将XML内容返回到命令行。有时XML文件非常大,因此您无法向上滚动以查看所有内容。
在将内容打印到终端之前,我想知道在我的XML数组上调用var_dump()是否会超出终端窗口显示。
1)是否有方法获得将从var_dump($my_xml_array)
显示的行数?
您应该使用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的大小。
把这两个放在一起,然后继续。
<?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";
希望这能奏效!