从PHP中的目录和文本文档导入数据

时间:2018-10-06 04:46:48

标签: php scandir

我想将数据从列标题名称为ATMP的目录中的文本文档推入数组。在每个文档中,ATMP的位置都可以更改。

这是文本文档的外观

runghc

这是我正在尝试实现的代码 我将在我的php终端中点击“ index.php ATMP”命令以使其运行

代码如下:

WDIR WSPD GST WVHT  DPD   APD   MWD  PRES    ATMP  WTMP  DEWP VIS  TIDE
degT m/s  m/s m     sec   sec   degT hPa     degC  degC  degC mi   ft
116  2.8  3.0 99.00 99.00 99.00 999  9999.0  23.8  999.0 16.2 99.0 99.00
117  2.8  3.0 99.00 99.00 99.00 999  9999.0  23.8  999.0 16.2 99.0 99.00

在这里我必须做两件事 1.在将数据推送到数组之前,我必须忽略前两行 2.我必须获得以下ATMP值

我没有解决方法。你能帮我怎么做吗?

1 个答案:

答案 0 :(得分:0)

我有编写脚本来获取所需的数据。 (当ATMP列在此位置更改时,此脚本将起作用)

删除多余的代码(出于测试目的。您也可以优化此代码)

<?php
$myFile = "t1.txt";
$lines = file($myFile);//file in to an array

//var_dump($lines);
echo "<pre>";
$top_row=$lines[0];

$top_row = preg_replace('/\s+/', ' ',$top_row);//remove duplicate spaces in lines

$position_data = explode(' ', $top_row);
foreach ($position_data as $key => $value) {
    if($value=='ATMP'){
        $index=$key;//here is your index or column number where ATMP exist
    }
}
print_r($position_data);
unset($lines[0]);
unset($lines[1]); // we do not need these lines.
// exit;
foreach($lines as $key => $line) 
{
    $line = preg_replace('/\s+/', ' ',$line);//remove only duplicate or multiple spaces
    $var = explode(' ', $line);
    foreach ($var as $key => $value2) {
        if($index == $key){
            $arr[]=$value2;
        }
    }

    // print_r($key);
    // echo "<br>";
}

echo "<pre>";
print_r($arr);