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

Форум PHP

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

 

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

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

тема: Формирование HTML-таблицы из содержимого файла(2)
 
 автор: Имя   (25.05.2011 в 09:59)   письмо автору
33.5 Кб
 
 

Привет. Возникла проблема по той причине что преподаватель дал новое(последнее) задание. Пробовал сделать, ничего не выходит.Оно звучит так:
Нужно вывести таблицу с числами от 1 до 99. В одной строке 16 чисел, всего 7 строк. Ее нужно сделать путем чтения из файла. До этого в темах у меня был такой код но он не правильный.Прошу помощи у вас.Я прикреплю Документ Microsoft Word с таблицей, как она выглядит. Огромное спасибо тем кто помогает.

  Ответить  
 
 автор: cheops   (25.05.2011 в 12:33)   письмо автору
 
   для: Имя   (25.05.2011 в 09:59)
 

Можно начать отталкиваться от следующего скрипта
<?php 
  
// Количество элементов
  
$total 99;
  
// Количество ячеек в строке
  
$pnumber 16;
  
// Вычисляем количество строк
  
$lines $total $pnumber;
  
// Массив с числами
  
$arr = array();
  for(
$i 1$i <= $total$i++)
  {
    
$arr[] = $i;
  }
  echo 
"<table border='1'>";
  for(
$j 0$j $lines$j++)
  {
    echo 
"<tr>";
    for(
$i 0$i $pnumber$i++)
    {
      echo 
"<td>";
      if(isset(
$arr[$j $pnumber $i]))
      {
        echo 
$arr[$j $pnumber $i];
      }
      else
      {
        echo 
"&nbsp;";
      }
      echo 
"</td>";
    }
    echo 
"</tr>";
  }
  echo 
"</table>";
?>

  Ответить  
 
 автор: Имя   (25.05.2011 в 14:31)   письмо автору
 
   для: cheops   (25.05.2011 в 12:33)
 

Огромнейшее спасибо! скрипт очень понятен.

  Ответить  
 
 автор: Имя   (26.05.2011 в 14:02)   письмо автору
31 Кб
 
   для: cheops   (25.05.2011 в 12:33)
 

Снова здравствуйте! Попробовал оттолкнуться от вашего скрипта. Преподаватель дал задание вывести таблицу от 1 до 99 в 5 строк, в каждой строке 20 элементов ( в 5 -19). Я сделал так:
 <?php 
  
// чтение файла
 
$q=file ('Z:\home\test1.ru\www\asd.txt');
  
// Количество ячеек в строке
  
$pnumber 20;
  
// Вычисляем количество строк
  
$lines 5;
  
// Массив с числами
  
$arr = array();
  for(
$i 1$i <= count($q); $i++)
  {
  
$arr=$i;
  }
  
  echo 
"<table border='1'>";
  for(
$j 0$j $lines$j++)
  {
    echo 
"<tr>";
    for(
$i 0$i $pnumber$i++)
    {
      echo 
"<td>";
// определяет, установлена ли переменная
      
if(isset($arr[$j $pnumber $i]))
      {
        echo 
$arr[$j $pnumber $i];
      }
      else
      {
        echo 
"&nbsp;";
      }
      echo 
"</td>";
    }
    echo 
"</tr>";
  }
  echo 
"</table>";
?> 
  

Выводит таблицу 5 строк и 100 ячеек, но без чисел в них((( Помогите исправить пожалуйста.

  Ответить  
 
 автор: cheops   (26.05.2011 в 14:11)   письмо автору
 
   для: Имя   (26.05.2011 в 14:02)
 

>$q=file ('Z:\home\test1.ru\www\asd.txt');
А каков формат файл? Опять тот же, числа без разделителей в одну строку? Или тут каждое число находится на отдельной строке?

  Ответить  
 
 автор: Имя   (26.05.2011 в 14:37)   письмо автору
 
   для: cheops   (26.05.2011 в 14:11)
 

формат txt. Числа находятся в документе так: первая строка 1234567891011121314151617181920 без разделителей, след строка 21222324252627282930313233343536373 83940 и т д всего 5 строк

  Ответить  
 
 автор: Lotanaen   (26.05.2011 в 14:41)   письмо автору
 
   для: Имя   (26.05.2011 в 14:37)
 

если без разделителей, то как вы их различать то будете друг от друга? А если они в другой последовательности будут записаны?

  Ответить  
 
 автор: Имя   (26.05.2011 в 14:51)   письмо автору
 
   для: Lotanaen   (26.05.2011 в 14:41)
 

А вот препод сказал что должны быть без разделителей....если можно сделать с разделителями то как? главное что бы читало из файла и выводилась таблица

  Ответить  
 
 автор: Lotanaen   (26.05.2011 в 15:00)   письмо автору
 
   для: Имя   (26.05.2011 в 14:51)
 

да любыми разделителями: пробелами, запятыми, двоеточиями, точкой с запятой, табуляцией....
это при формировании файла все делается - вы же с уже готовым работаете..

  Ответить  
 
 автор: cheops   (26.05.2011 в 15:09)   письмо автору
 
   для: Имя   (26.05.2011 в 14:37)
 

Тогда содержимое файла нужно предварительно обработать так как было описано в теме по ссылке http://softtime.ru/forum/read.php?id_forum=1&id_theme=80846.

  Ответить  
 
 автор: Lotanaen   (26.05.2011 в 14:29)   письмо автору
 
   для: Имя   (26.05.2011 в 14:02)
 

$arr=$i; вот здесь замените на $arr[]=$i;
вернее даже на $arr[]=$q[$i];

  Ответить  
 
 автор: Имя   (26.05.2011 в 14:39)   письмо автору
 
   для: Lotanaen   (26.05.2011 в 14:29)
 

выводит не то что нужно...

  Ответить  
 
 автор: Lotanaen   (26.05.2011 в 14:43)   письмо автору
 
   для: Имя   (26.05.2011 в 14:39)
 

ну правильно... код рассчитан на условие что каждое число в новой строке текстового файла находится... вот и выводит построчно...

  Ответить  
 
 автор: Имя   (26.05.2011 в 14:52)   письмо автору
 
   для: Lotanaen   (26.05.2011 в 14:43)
 

я и прошу чтобы помогли код изменить я задолбался голову ломать(( всего то месяц изучения php

  Ответить  
 
 автор: Lotanaen   (26.05.2011 в 15:03)   письмо автору
 
   для: Имя   (26.05.2011 в 14:52)
 

текстовый файл готовый дали или вы его формируете сами?

  Ответить  
 
 автор: Имя   (26.05.2011 в 15:05)   письмо автору
 
   для: Lotanaen   (26.05.2011 в 15:03)
 

мне сказали как должны быть записаны числа в файле....думаю можно и изменить главное чтобы читало из файла...и выводилась таблица
я прикрепил файл в сообщении как должна выглядеть таблица

  Ответить  
 
 автор: Lotanaen   (26.05.2011 в 15:10)   письмо автору
 
   для: Имя   (26.05.2011 в 15:05)
 

ну по логике если между числами в файле текстовом даже нет пробелов либо других разделителей - то это же получается одно большое число на каждой строке...
поэтому пишите числа через пробел например.

  Ответить  
 
 автор: Имя   (26.05.2011 в 15:31)   письмо автору
 
   для: Lotanaen   (26.05.2011 в 15:10)
 

Написал числа через пробел. А код поможете исправить? чтобы читал числа с пробелом

  Ответить  
 
 автор: cheops   (26.05.2011 в 15:41)   письмо автору
 
   для: Имя   (26.05.2011 в 15:31)
 

<php
   $q=file_get_contents ('Z:\home\test1.ru\www\asd.txt');
   $arr = explode(" ", $q);
  ...
>

  Ответить  
 
 автор: Имя   (26.05.2011 в 16:10)   письмо автору
 
   для: cheops   (26.05.2011 в 15:41)
 

Не работает(( Может в коде где-то ошибся?
  <?php 
  
// чтение файла
 
$q=file_get_contents ('Z:\home\test1.ru\www\asd.txt');
   
$arr explode(" "$q);
  
// Количество ячеек в строке
  
$pnumber 20;
  
// Вычисляем количество строк
  
$lines 5;
  
// Массив с числами
  
$arr = array();
  for(
$i 1$i <= count($q); $i++)
  {
  
$arr[]=$q[$i];
  }
  
  echo 
"<table border='1'>";
  for(
$j 0$j $lines$j++)
  {
    echo 
"<tr>";
    for(
$i 0$i $pnumber$i++)
    {
      echo 
"<td>";
// определяет, установлена ли переменная
      
if(isset($arr[$j $pnumber $i]))
      {
        echo 
$arr[$j $pnumber $i];
      }
      else
      {
        echo 
"&nbsp;";
      }
      echo 
"</td>";
    }
    echo 
"</tr>";
  }
  echo 
"</table>";
?> 
  

  Ответить  
 
 автор: Lotanaen   (26.05.2011 в 16:44)   письмо автору
 
   для: Имя   (26.05.2011 в 16:10)
 

вот эту часть кода уберите
$arr = array();
for($i = 1; $i <= count($q); $i++)
{
$arr[]=$q[$i];
}

  Ответить  
 
 автор: Имя   (26.05.2011 в 16:56)   письмо автору
 
   для: Lotanaen   (26.05.2011 в 16:44)
 

Во....спасибо!

  Ответить  
Rambler's Top100
вверх

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