2015-07-01 3 views
-1

В моей интрасети я и мои пользователи хранят довольно длинные строки текста в базе данных.HTML/PHP: преобразовать строку текста в таблицу

Эти строки текста часто бывают от Excel или CSV. В настоящий момент они отображаются как обычный текст.

Я хочу, чтобы эти строки текстов были автоматически обработаны и преобразованы в таблицы HTML, когда некоторые разделители обнаружены в их теле (например, комы или вкладки).

Вот пример рода «сценарий» мне нужно: csv-convert-table

Может ли это быть достигнуто только с PHP, не требуя какой-либо дополнительный модуль?

+1

Да, это может быть ... хотя ваше описание «длинных строк текста» довольно бессмысленно .... для открытия/загрузки файла csv требуется около 20 строк кода отображать его как таблицу html .... но «без какого-либо дополнительного модуля», вероятно, означает, что вам понадобится много времени, чтобы написать его для файлов Excel, если вы не готовы использовать внешние библиотеки. –

+0

@MarkBaker I'm извините, может быть, я не был достаточно ясен ... Я не хочу импортировать фактический файл CSV или XLS. Я имел в виду, что мы привыкли копировать информацию из таких файлов, а затем просто вставляем их в виде простого текста в нашу базу данных. Это простой текст, включая разделители (как я уже сказал, комы или вкладки), которые мне нужно преобразовать в таблицу в моем коде :) – Blackounet

+0

Ну, вероятно, для чтения строки CSV из вашей базы данных, вероятно, потребуется около 20 строк кода, используйте str_getcsv (), чтобы разобрать его на массив, а затем отобразить его как html .... это ваше описание хранения Excel, это довольно странно ... Вы сохраняете весь двоичный файл файла в своей базе данных? –

ответ

1

Код для преобразования CSV-файла в HTML-таблицу непосредственно

<?php 
$row = 1; 
if (($handle = fopen("tn-tiger-july-1.csv", "r")) !== FALSE) { 
    $htmlval = "<table class='table-div' align='center' border='1' cellpadding='3' cellspacing='0'>"; 
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
     $htmlval = $htmlval."<tr>"; 
     $num = count($data);   
     $row++; 
     for ($c=0; $c < $num; $c++) { 
      if($data[$c] != "" || trim($data[$c]) != " "){ 
       $htmlval = $htmlval. "<td class='cols' align='center'>".$data[$c]."</td>"; 
      }else{ 
       $htmlval = $htmlval. "<td class='cols'>&nbsp;</td>"; 
      } 
     } 
     $htmlval = $htmlval."</tr>"; 
    } 
    $htmlval = $htmlval."</table>"; 
    fclose($handle); 
} 
?> 

В приведенном выше переменном коде $htmlval будет содержать данные из CSV в формат HTML таблицы. Надеюсь, это вам поможет :)