1

テーブルにフォーマットされているように見えるデータを含むテキスト ファイルがあります。しかし、それらは表に似せて作成された順序付けされたテキスト行にすぎません。テキスト ファイルを読み取って、一部のデータのみを取得し、HTML テーブルを作成しようとしています。

テキスト ファイルは次のようになります。

Class 1:
S.No RollNumber Name RandomAllocatedNumber Overall Result
---- ---------- ---- --------------------- --------------
1 ABC-BYT-M56-8T Sam Jackson NBV26173GHS Pass
2 BNS-SUD-H72-7Y Mario Javi  HAS12824SAD Pass

Class 2:
S.No RollNumber Name RandomAllocatedNumber Overall Result
---- ---------- ---- --------------------- --------------
1 POW-AVE-S36-7C Matt Stepson GSA22343GFS Pass
2 EWG-JAS-T12-3R Taylor Xavier  EWF54524EAD Pass

このコードを使用して、完全なファイルを読み取り、出力を表示しました。

<?php
foreach(glob(somefile.txt") as $filename) {
$file = $filename;
$contents = file($file);
$string = implode("<br>",$contents);
echo $string;
echo "<br></br>";
}
?>

しかし、上記のデータから学生番号、ロール番号、および RandomAllocatedNumber のみを取得する必要があります。

次のようになります。

ClassNo |RollNumber     |RandomAllocatedNumber

1       |ABC-BYT-M56-8T |NBV26173GHS
1       |BNS-SUD-H72-7Y |HAS12824SAD
2       |POW-AVE-S36-7C |GSA22343GFS
2       |EWG-JAS-T12-3R |EWF54524EAD

上記の表は、行を完全に読み取ってファイル全体を表示するのではなく、php ページに表示されるように見えるものです。

これを取得するために簡単なコードを変更するにはどうすればよいですか?

4

2 に答える 2

2

その入力形式では、これにより、要求した出力が生成されるはずです。

<?php
$file = fopen("somefile.txt",'r');
$class = 0;
while (!feof($file))
{
    $line = trim(fgets($file));
    if ($line)
    {
        if (strlen($line)==8 && substr($line, 0, 5)=="Class") $class = $line[6];
        elseif (is_numeric($line[0]))
        {
            $parts = explode(" ",$line);
            echo $class." | ".$parts[1]." | ".$parts[count($parts)-2]."<br>";
        }
    }
}
fclose($file);
?>
于 2013-07-09T17:38:30.103 に答える
1

さて、これがあなたができることです..それは私自身の作成です

function mydata($file_path,$start_line=0,$end_line=0)
{
$urldatafile = file($file_path) or die("Sorry, Couldn't load data!!");
if($end_line==0){
    $linecount = count($urldatafile);
    $end_line = $linecount;
}
$array_data = array_slice($urldatafile, $start_line, $end_line);
    echo "<table>";
    foreach ($array_data as $data)
    { 
    $data = explode("===", $data);

    echo "<tr>";
        echo "<td>{$data[0]}</td><td>{$data[1]}</td><td>{$data[2]}</td><td>{$data[3]}</td>";
    echo "</tr>"
    }
    echo "</table>";
}

example.txt ファイルで、新しい各行に次のデータ値を書き込みます

Data1===data2===data3===data4
Data1===data2===data3===data4
Data1===data2===data3===data4
Data1===data2===data3===data4
Data1===data2===data3===data4

利用方法:

mydata("PATH TO EXAMPLE TEXT FILE");

=== は 2 つの値を 1 行で区切ることに注意してください。また、テキスト ファイルでは、新しい行はワード ラップではなく新しい行にする必要があることに注意してください。

于 2013-07-09T17:33:32.727 に答える