fgetcsv vs explode以定界文本表中的特定列为目标

时间:2015-08-13 17:47:49

标签: php html arrays flat-file

我一直在阅读如何将某些列定位到数组中,但我们对于explode和fgetcsv之间最好的技术感到困惑。

我已经开始使用fgetcsv,并且它适用于回声,但是当我创建我的桌子时,它们全部崩溃......

这里是数据库的一小部分......比如说我希望所有HDR索引的列1-4都是......

RAK 0 ; none ; WCU ; gray ; 20C ; 40C ; grey ; grey 
RAK 1 ; none ; WCU ; gray ; 20C ; 40C ; grey ; grey 
RAK 2 ; none ; WCU ; gray ; 20C ; 40C ; red ; red 
RAK 3 ; none ; ACU; gray ; 20C ; 40C ; red ; red 
HDR 0 ; 1    ; 2   ; 3   ;  4  ; 5   ; 6   ; 7
HDR 1 ; 1a    ; 2a   ; 3a   ;  4a  ; 5a   ; 6a   ; 7a**

这是我提出的变量,但它无法正常工作。

<?php

$row = 1;
if (($handle = fopen("jobstatus2.txt", "r")) !== FALSE) {

echo '<table border="0">';

while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
    $num = count($data);
    if ($row == 1) {
        echo '<thead><tr>';
    }else{
        echo '<tr>';
    }

    for ($c=0; $c < $num; $c++) {
        //echo $data[$c] . "<br />\n";
        if(empty($data[$c])) {
           $value = "&nbsp;";
        }else{
           $value = $data[$c];
        }
        if ($row == 1) {
            echo '<th>'.$value.'</th>';
        }else{
            echo '<td>'.$value.'</td>';
        }
    }

    if ($row == 1) {
        echo '</tr></thead><tbody>';
    }else{
        echo '</tr>';
    }
    $row++;
}

 echo '</tbody></table>';
 fclose($handle);
 }
?>

它几乎可以,但是错过了一英里。如何在fgetcsv中包含列1-4,还是需要使用explode函数?

这是我用来获取任何特定记录的变量,但它不适用于数组。

<?php

$statusled = array();
if (($handle = fopen("status.txt", "r")) !== FALSE)
{
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE)
{
    if(substr(trim($data[0]), 0, 3) == 'BRD')
    {
        $board = trim($data[0]);
        $status = $data[1];
        $statusled[ $board ] = $status;
    }
    }
     fclose($handle);
  }
 ?>

谢谢,

威廉

0 个答案:

没有答案