За последние 24 часа нас посетили 58366 программистов и 7221 робот. Сейчас ищут 2553 программиста ...

отступы при вызове csv файла из PHP

Тема в разделе "PHP для новичков", создана пользователем Tricord, 3 мар 2009.

Статус темы:
Закрыта.
  1. Tricord

    Tricord Активный пользователь

    С нами с:
    3 мар 2009
    Сообщения:
    3
    Симпатии:
    0
    суть: беру из csv файла описание фильма в виде:
    Код (Text):
    1. число начала показа;месяц;число окончания показа;название;время сеанса,время сеанса и тд
    вызываю этот файл includ'ом из процедуры на php:
    PHP:
    1.   <?
    2.  $dd=date("d");
    3.  $dm=date("n");
    4.  $count = 1;
    5.  $file =  fopen ("$name","r");                  // открываем нужный файл
    6.  while ($data = fgetcsv ($file, 1000, ";")) {   // берем данные, разделеные ; пока их количество меньше 1000
    7.      $num = count ($data);                      // считаем сколько данных сосчитали
    8.      for ($i=0; $i < $num-1; $i++) {            // последовательно пролистываем все данные
    9.           if (($data[$i]<=$dd) && ($data[$i+1]==$dm) && ($data[$i+2]>=$dd)) {
    10.                 echo("<div class=film>");
    11.                 echo("<table width=100% border=0 cellspacing=0 cellpadding=0 class=film> ");
    12.                
    13.                 //////////////////////////////// Когда
    14.                 echo("<tr>");
    15.                     echo("<td valign=top>");
    16.                         echo("<span class=afisha><font color=#000066 face=Arial, Helvetica, sans-serif><br>Когда:</font></span>");
    17.                         echo("</td>");
    18.                     $ii=$i+1;
    19.                     $z=$i+2;
    20.                     echo("<td>");
    21.                         echo("<span class=afisha><font face=Arial, Helvetica, sans-serif><br> C $data[$i].$data[$ii] по $data[$z].$data[$ii] </font></span>");
    22.                     echo("</td>");
    23.                 echo("</tr>");
    24.                
    25.                 ///////////////////////////////// Название фильма
    26.                 $iii=$i+3;
    27.                 echo("<tr>");
    28.                     echo("<td valign=top>");
    29.                         echo("<span class=afisha><font color=#000066 face=Arial, Helvetica, sans-serif>Что:</font></span>");
    30.                     echo("</td>");
    31.                    
    32.                     echo("<td>");
    33.                         echo("<span class=afisha><font face=Arial, Helvetica, sans-serif> $data[$iii] </font></span>");  
    34.                         echo("</td>");
    35.                 echo("</tr>");
    36.                
    37.                 ////////////////////////////////  Сеансы
    38.                 echo("<tr>");
    39.                     echo("<td valign=top>");
    40.                         echo("<span class=afisha><font color=#000066 face=Arial, Helvetica, sans-serif>Сеансы:</font></span>");
    41.                     echo("</td>");
    42.                     $iiii=$i+4;
    43.                     echo("<td>");  
    44.                         echo("<span class=afisha><font face=Arial, Helvetica, sans-serif> $data[$iiii] </font></span>");
    45.                         echo("</td");
    46.                 echo("</tr>");
    47.                 echo("</table>");
    48.                 echo("</div>");
    49.                 $i=$i+4;
    50.         }  //if
    51.     } //for
    52.  } //while
    53.  fclose ( $file );
    54.  ?>
    в итоге получаю таблицу:

    Код (Text):
    1. когда: С *** по ***
    2. что:  %название фильма%
    3. сеансы: xx:xx, xx:xx, xx:xx, xx:xx, xx:xx
    проблема в том, что если кол-во сеансов фильма больше 4-х то все порядке, но если число сеансов меньше, то информация из csv файла пишется с отступом слева. т.е. чем меньше сеансов, тем больше отступ. в результате форматирование жутко ползет.

    не знаю, где копать проблему, подскажите
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    7.983
    Симпатии:
    1
    Адрес:
    Оттуда
    отформатируй код?

    PHP:
    1.  
    2. <?
    3. for($i=0;$i<10;$i++) {
    4.      if(true) {
    5.           break;
    6.      }
    7. }
    8. ?>
    9.  
    а не так:

    PHP:
    1.  
    2. <?
    3. for($i=0;$i<10;$i++)
    4. {
    5. if(true)
    6. {
    7. break;
    8. }
    9. }
    10. ?>
    11.  
    читать это - себя не уважать
     
  3. Tricord

    Tricord Активный пользователь

    С нами с:
    3 мар 2009
    Сообщения:
    3
    Симпатии:
    0
    форматирование изменил, прошу прощения)
     
  4. Frozen

    Frozen Активный пользователь

    С нами с:
    20 окт 2008
    Сообщения:
    540
    Симпатии:
    0
    Адрес:
    Москва
    align="left"
     
  5. Tricord

    Tricord Активный пользователь

    С нами с:
    3 мар 2009
    Сообщения:
    3
    Симпатии:
    0
    не помогло, проблема решилась тем, что в ручную задал ширину левого столбца (30%). всем откликнувшимся спасибо)

    можно закрывать
     
Статус темы:
Закрыта.