2013-04-06 91 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程序的扩展来发布更新到Web上的简单事情。 – jgetrost 2013-04-06 03:57:38

回答

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 2013-04-06 04:10:19

+0

http://tros.jgetrost.com/readkeys.php < - 可读取的页面 – jgetrost 2013-04-06 04:10:52

+0

您能否澄清你的两个评论意味着什么? – fletch 2013-04-06 04:20:19

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;