2013-04-06 116 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;