Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: таблицу из CSV в HTML
 
 автор: Алексей Юрьевич   (10.09.2007 в 22:04)   письмо автору
 
 

Всем привет=)
У меня снова проблема, нужно таблицу из CSV файла перегнать в ХТМЛ.
Использую такую функцию

//Перевод таблицы из CSV в HTML
function create_table($filename,$separator)
    {
    // Открываем переданный файл
     if (!($fp = fopen($filename,"rb")))
      {
      echo "<p>Невозможно открыть файл.</p>";
      exit();
      }
  // Читаем содержимое файла в промежуточный буфер - $buffer
  $buffer = fread($fp,filesize($filename));
  // Закрываем файл
     fclose($fp);
  // Заменяем прямые кавычки обратными
  $buffer = str_replace("'", "`",$buffer);
  // Разбиваем файл по строкам, каждую строку файла помещаем в отдельный
  // элемент промежуточного массива $strtmp
  $tok = strtok($buffer,"\n");
  $strtmp[] = $tok;
  while ($tok)
      {
      $tok = strtok("\n");
      $strtmp[] = $tok;
      }
  // Начинаем формирование таблицы
  $table = "<table class=nodetable border=1 cellpadding=0 cellspacing=0 width=100% bordercolordark=white bordercolorlight=gray>";
  // Разбиваем строку по отдельным словам, используя разделитель
  foreach($strtmp as $value)
        {
      // Если строка пустая выходим из цикла
      if(trim($value)=="")break;
      // Начинаем формирование строки таблицы
      $table .= "<tr>";
      $strtmp = strtok($value,$separator);
      $table .= "<td>$strtmp</td>";
      while($strtmp = strtok($separator))
           {
           // Помещаем значение в ячейку
           $table .= "<td>$strtmp</td>";
          }
   // Завершаем формирование строки таблицы
   $table .= "</tr>";
   }
  // Заканчиваем формирование таблицы
  $table .= "</table>";
    return $table;
    }

но она не работает - пустые ячейки неправильно обрабатываются...

   
 
 автор: Алексей Юрьевич   (11.09.2007 в 19:47)   письмо автору
 
   для: Алексей Юрьевич   (10.09.2007 в 22:04)
 

АП=)

   
 
 автор: elenaki   (11.09.2007 в 20:34)   письмо автору
 
   для: Алексей Юрьевич   (11.09.2007 в 19:47)
 

как неправильно?

   
 
 автор: Алексей Юрьевич   (11.09.2007 в 21:03)   письмо автору
 
   для: elenaki   (11.09.2007 в 20:34)
 

если есть пустые ячейки, происходит сдвиг столбцов на место пустых ячеек...
Надеюсь, понятно объяснил=)

   
 
 автор: Trianon   (11.09.2007 в 21:28)   письмо автору
 
   для: Алексей Юрьевич   (10.09.2007 в 22:04)
 

не проще ли применить стандартную функцию fgetcsv()?

   
 
 автор: Алексей Юрьевич   (11.09.2007 в 21:33)   письмо автору
 
   для: Trianon   (11.09.2007 в 21:28)
 

эм... не знал, что такая существует=)
спасибо=)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования