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

Форум PHP

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

 

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

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

тема: Формирование HTML-таблицы из содержимого файла
 
 автор: Имя   (22.05.2011 в 10:30)   письмо автору
 
 

Привет всем. Помогите пожалуйста. Кто-нибудь может написать код для вывода чисел от 1 до 20 в ячейки таблицы. Пример: [1][2][3][4][5][6][7][8][9][10][11][12][13][14]....[20].
У меня есть код, но он не верный, а как изменить его я не знаю((
Сам код:

<?php
echo "<html><body bgcolor=blue text=white>";

$q=file('пусть к текст.документу - 123456789101112131415.....');
echo 
"<table border=2>";

for (
$i=1;$i<=2;$i++) {

echo 
"<tr><td width=100>".$q[$i-1]."</td>";

if ((
$q[$i-1][$j])=="") echo "<td width=100>" "</td>";

else echo 
"<td width=15>".$q[$i-1][$j]."</td>";}

echo 
"</tr>";}
echo 
"</table>";
?>

  Ответить  
 
 автор: Yuriev   (22.05.2011 в 11:23)   письмо автору
 
   для: Имя   (22.05.2011 в 10:30)
 

Вот тут
for ($i=1;$i<=2;$i++) {
должно быть
for ($i=1;$i<=20;$i++) {

  Ответить  
 
 автор: cheops   (22.05.2011 в 11:30)   письмо автору
 
   для: Имя   (22.05.2011 в 10:30)
 

А числа где находятся? В файле? Если да, то какого формата файл?

  Ответить  
 
 автор: Имя   (22.05.2011 в 11:41)   письмо автору
 
   для: cheops   (22.05.2011 в 11:30)
 

txt

  Ответить  
 
 автор: cheops   (22.05.2011 в 11:46)   письмо автору
 
   для: Имя   (22.05.2011 в 11:41)
 

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

  Ответить  
 
 автор: Имя   (22.05.2011 в 13:06)   письмо автору
 
   для: cheops   (22.05.2011 в 11:46)
 

расположены так: 1234567891011121314151617181920 без пробелов

  Ответить  
 
 автор: cheops   (22.05.2011 в 14:25)   письмо автору
 
   для: Имя   (22.05.2011 в 13:06)
 

Довольно тяжело без разделителей понять, что 20, это 20, а не 2 и 0. Лучше сформировать файл, где бы числа были чем-то разделены, иначе как понять сколько цифр в числе?

  Ответить  
 
 автор: Имя   (22.05.2011 в 14:29)   письмо автору
 
   для: cheops   (22.05.2011 в 14:25)
 

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

  Ответить  
 
 автор: cheops   (22.05.2011 в 14:51)   письмо автору
 
   для: Имя   (22.05.2011 в 14:29)
 

Правильно ли я понимаю, что текстовый файл менять нельзя и он поступил к вам вместе с заданием? Или вы его формируете сами? Это относится к любым разделителям или только к пробелам, т.е. нельзя ли числа разделить хотя бы запятыми?

  Ответить  
 
 автор: Имя   (22.05.2011 в 14:59)   письмо автору
 
   для: cheops   (22.05.2011 в 14:51)
 

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

  Ответить  
 
 автор: cheops   (22.05.2011 в 15:13)   письмо автору
 
   для: Имя   (22.05.2011 в 14:59)
 

Понятно, тогда лучше никаких разделителей и не добавлять и считать, что числа всегда идут от единицы, по нарастающей. Тогда задачу нужно разбить на две части:
1) Получение из файла массива с числами (догадываюсь, что вычисление по длине не прокатит)
2) Вывод этого массива.

  Ответить  
 
 автор: cheops   (22.05.2011 в 15:33)   письмо автору
 
   для: Имя   (22.05.2011 в 14:59)
 

Первую часть задачи я бы решил так
<?php
  $line 
file_get_contents("test.txt");
  
$arr = array();
  
$number 0;
  for(
$i 0$i strlen($line); $i $i getpos($number))
  {
    
$number substr($line$igetpos($number 1));
    
$arr[] = $number;
  }
  echo 
"<pre>";
  
print_r($arr);
  echo 
"</pre>";
  
// Определяем количество цифр в числе
  
function getpos($number)
  {
    return 
strlen($number);
  }
?>
Вторая часть задачи вероятно у вас не вызовет затруднений, так как это просто вывод из готового массива $arr.

  Ответить  
 
 автор: Имя   (22.05.2011 в 15:44)   письмо автору
 
   для: cheops   (22.05.2011 в 15:33)
 

Огромное спасибо Игорь Вячеславович! Вторую часть попробую сделать сам.

  Ответить  
 
 автор: cheops   (22.05.2011 в 11:52)   письмо автору
 
   для: Имя   (22.05.2011 в 10:30)
 

Я так понимаю $q - это массив? Если да, то вместо 2 лучше использовать количество элементов в массиве
for ($i=1;$i<=count($q);$i++)

Или вы хотите вывести числа в два столбца?

  Ответить  
 
 автор: Имя   (22.05.2011 в 13:08)   письмо автору
 
   для: cheops   (22.05.2011 в 11:52)
 

без разницы как выводить главное чтобы вывелись все числа без пробелов, каждое число в своей ячейке. Хотелось бы вот так: первая строка 12345678910 а под ними 11121314151617181920

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

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