PHP:如何判断var_Dump()是否会超出终端窗口显示


PHP: How to determine if var_Dump() will exceed the terminal window display?

我有一个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

两步:

  1. 使用exec()调用获取终端中的行数tput lines

  2. 通过使用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";

希望这能奏效!