varios valores txt texto mostrar linea leer especifica archivo php html-table text-files

txt - leer varios valores de un archivo de texto en php



Leyendo datos del archivo de texto y formando una tabla usando php (2)

Tengo un archivo de texto que contiene datos que parecen formateados en una tabla. Pero solo se ordenan líneas de texto hechas para parecerse a una tabla. Intento leer el archivo de texto, obtener solo algunos datos y formar una tabla HTML.

El archivo de texto se ve así:

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

Usé este código para leer el archivo completo y mostrar el resultado:

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

Pero necesito obtener únicamente el número de alumno, el número de registro y el número de ubicación aleatorio de los datos anteriores.

Que se vería algo así como:

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

La tabla anterior es lo que busco que se muestre en la página php en lugar de leer totalmente las líneas y mostrar todo el archivo.

¿Cómo puedo cambiar mi código simple para obtener esto?


Bueno, aquí está lo que puedes hacer ... Es mi propia creación

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>"; }

En el archivo example.txt, escriba cada nueva línea con los siguientes valores de datos

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

USO:

mydata("PATH TO EXAMPLE TEXT FILE");

Tenga en cuenta que === separa los dos valores en una línea, también tenga en cuenta que en el archivo de texto, la nueva línea debe ser una nueva línea, no un ajuste de palabra.


Con ese formato de entrada, esto debería producir el resultado que solicitó:

<?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); ?>