1

我们如何对控制台应用程序的输出进行进一步的比较或计算。我相信它是 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...........

我不希望将列行保存在数组中,并且我希望将列中的每个元素保存在数组的不同索引中。例如数组[1]=0.1373 和数组[2]=0.414。

4

2 回答 2

1

我的建议是在输出的每一行上运行一个简单的正则表达式:

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
)
于 2013-04-09T03:36:42.813 回答
0

您可以使用 [s,t]=system(...) 捕获外部命令的输出。第二个输出应该是你在文件中的字符串。然后您可以解析字符串(例如使用正则表达式或 str split utils)以根据需要提取数据。

于 2013-04-09T09:20:04.343 回答