如何对控制台应用程序的输出进行进一步的比较或计算?我相信它是ASCII格式的。我在php中调用了控制台应用程序,它提供了大量的数字数据。我希望数据保存在数组中,而不是在txt文件中,因为读写文件的过程需要时间,我希望它直接保存在数组中。我使用了exec($command,$result),但我无法以适当的形式保存结果。输出如下所示:
Columns 1 through 7
0.1373 0.0414 0.0541 0.1342 0.5606 0.5293 0.1652
Columns 8 through 14
0.0341 0.0396 0.0633 0.0778 0.0289 0.0654 0.0752
Columns 15 through 21
0.3055 0.4602 0.0631 0.0360 0.0188 0.0497 0.0228...........
我不希望列行被保存在数组中,我希望列中的每个元素被保存在数组的不同索引中。如array[1]=0.1373 and array[2]=0.414.
我的建议是在输出的每一行上运行一个简单的正则表达式:
if (preg_match_all('/'d+'.'d+/', $line, $matches)) {
print_r($matches[0]);
}
如果表达式匹配,您将得到一个结果数组,您可以使用该数组进行进一步处理。与您的帖子匹配的第一行的输出:
Array
(
[0] => 0.1373
[1] => 0.0414
[2] => 0.0541
[3] => 0.1342
[4] => 0.5606
[5] => 0.5293
[6] => 0.1652
)
您可以使用[s,t]=system(…)捕获外部命令的输出。第二个输出应该是文件中所包含内容的字符串。然后,您可以解析字符串(例如使用regexp或str split utils)以提取所需的数据。