2013-04-06 5 views
0

Я хочу взять текстовый файл, отформатированный как так:Создание HTML-таблица из нескольких строк строк

* обратите внимание, что я могу изменить формат сохраняемых сообщений, в основном есть разделители и различные линии

;68.229.164.10:4/5/2013:Hello 
;71.73.174.13:4/6/2013:Oh Hey 

(; IPADDRESS: TIMESTAMP: MESSAGE)

и поместить его в таблицу, которая выглядит так:

IP      Time     Message 
68.229.164.10   4/6/2013    Hello 
71.73.174.13    4/6/2013    Oh Hey 
+0

Я пытался поставить значения на свои собственные линии и добавьте их в таблицу из 3 столбцов, ячейку по ячейке, создав новые строки по мере необходимости, но она только создала новые строки и не могла добавить в столбцы. Я привык к программированию в VB, и я делаю это как расширение программы VB для публикации обновлений в Интернете для простых вещей. – jgetrost

ответ

0

Я предпочитаю использовать что-то вроде следующий:

http://php.net/manual/en/function.fgetcsv.php

А затем формата вывода соответственно.

Из примера 1 на выше указанной странице:

<?php 
$row = 1; 
if (($handle = fopen("test.csv", "r")) !== FALSE) { 
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
     $num = count($data); 
     echo "<p> $num fields in line $row: <br /></p>\n"; 
     $row++; 
     for ($c=0; $c < $num; $c++) { 
      echo $data[$c] . "<br />\n"; 
     } 
    } 
    fclose($handle); 
} 
?> 

так, вы могли бы сделать что-то вроде этого ...

<?php 
$row = 1; 
if (($handle = fopen("path_to_your_data_file", "r")) !== FALSE) { 

    echo '<table>'; 
    echo '<tr><td></td>IP<td>Time</td><td>Message</td></tr>'; 

    while (($data = fgetcsv($handle, 1000, ":")) !== FALSE) { 
     $num = count($data); 
     $row++; 
     if ($num > 2) { 
      echo '<tr>'; 
      for ($c=0; $c < $num; $c++) { 
       echo '<td>'.$data[$c].'</td>'; 
      } 
      echo '</tr>'; 
     } 
    } 

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

http://tros.jgetrost.com/writekeys.php <страница, на которой написаны сообщения – jgetrost

+0

http://tros.jgetrost.com/readkeys.php <- страница, где они могут быть прочитаны – jgetrost

+0

Можете ли вы уточнить что означают ваши два комментария? – fletch

0
$a=";68.229.164.10:4/5/2013:Hello 
;71.73.174.13:4/6/2013:Oh Hey"; 

preg_match_all('{;(.*?):(.*?):(.*)}',$a,$d); 

//set th 
$d[0][0]='IP'; 
$d[0][1]='TIME'; 
$d[0][2]='Message'; 

$table = '<table>'.PHP_EOL; 
foreach($d AS $tr){ 
    $row = PHP_EOL; 
    foreach($tr AS $td){ 
     $row .= "<td>{$td}</td>".PHP_EOL; 
    } 
    $table .= "<tr>{$row}</tr>".PHP_EOL; 
} 
$table .= "</table>".PHP_EOL; 
echo $table; 
Смежные вопросы