ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[php] нужен скрипт создания/отображения таблицы
  #1  
Старый 09.07.2007, 21:58
Аватар для Thanat0z
Thanat0z
Постоянный
Регистрация: 06.12.2006
Сообщений: 762
Провел на форуме:
5352530

Репутация: 2062


По умолчанию [php] нужен скрипт создания/отображения таблицы

Нужен скрипт для "псевдографического" отображения таблиц. То есть мне нужно создать табличку типа

Код:
___________________
|   | A | B | C | D |
=====================
| 1 |   |   |   |   |
---------------------
| 2 |   |   |   |   |
---------------------
| 3 |   |   |   |   |
---------------------
| 4 |   |   |   |   |
Данные будут задаваться строками, с разделителем |

То есть если подать на вход скрипту из текстового файла
Код:
№ |Название | скорость | Процент | 
1 |alpha | 700 | 23 | 
2 |beta | 2000 | 65 |
то должна создаться таблица

Код:
___________________________________
| № |Название | скорость | Процент | 
====================================
| 1 |alpha    | 700      | 23      |
------------------------------------
| 2 |beta     | 2000     | 65      |
Ширина колонки должна выстраиваться по самому длинному значению. Когда-то видел подобные скрипты и даже проги, но не сохранил
Под рукой нет ни мануалов, ни нормального инета, так что желательно подробные примеры давайте если не полностью скрипт

ЗЫ знаю что самому мона проставить горизонтальные разделители и пробелы наставлять в ячейках чтоб они все имели одинаковую ширину, но харит меня это дело

Последний раз редактировалось Thanat0z; 09.07.2007 в 22:00..
 
Ответить с цитированием

  #2  
Старый 09.07.2007, 23:24
Аватар для hhover
hhover
Познающий
Регистрация: 21.05.2007
Сообщений: 61
Провел на форуме:
79888

Репутация: 145
По умолчанию

PHP код:
<?php

$file 
file 'filename.txt' );

echo 
"
<table width='100%' heigth='100%' cellpadding='0' cellspacing='0' border='1'>
"
;

foreach ( 
$file as $string )
{
  
  
$string trim $string );
  
$string_array explode "|"$string );
  
  echo 
"
  <tr>
  "
;

  foreach ( 
$string_array as $column )
  {
    
    
$column trim $column );
    if ( 
$column == '' )
    {
      
$column '&nbsp;';
    }
    
    echo 
"
    <td>
      
$column
    </td>
    "
;
    
  }
  
  echo 
"
  </tr>
  "
;

}

echo 
"
</table>
"
;

?>
 
Ответить с цитированием

  #3  
Старый 10.07.2007, 22:34
Аватар для Thanat0z
Thanat0z
Постоянный
Регистрация: 06.12.2006
Сообщений: 762
Провел на форуме:
5352530

Репутация: 2062


По умолчанию

Нет, совсем не то, говорю же что надо в текстовом формате, пример привел
 
Ответить с цитированием

  #4  
Старый 11.07.2007, 00:12
Аватар для ant0ha
ant0ha
Участник форума
Регистрация: 22.05.2007
Сообщений: 144
Провел на форуме:
306311

Репутация: 119
По умолчанию

Мда, чтобы без таблиц (<tr><td>...</td></tr>) такой скрипт сделать нужно пару часиков голову поломать. ИМХО, нужно разбивать весь файл построчно в массив как делал hhover, затем каждые элементы строчки разделенные | перенести в отдельные массивы, найти в этих массивах самые длинные элементы(сравнивая значения длины каждого элемента массива полученных через функцию strlen), узнать их длину, потом посчитать сколько символов не хватает остальным элементам этого массива до нужной длины и добавить к ним нужное количество пробелов, и потом наконец вывести это все на экран. Тут циклов до ж**ы получится, темболее что входной текстовый файл наверняка не маленький.

И потом, код который писал hhover делает тоже самое, только немного в другом виде.
 
Ответить с цитированием

  #5  
Старый 11.07.2007, 02:16
Аватар для hhover
hhover
Познающий
Регистрация: 21.05.2007
Сообщений: 61
Провел на форуме:
79888

Репутация: 145
По умолчанию

ant0ha,
Можно и попроще...

Thanat0z,
Не знаю насколько адекватно будет реагировать на ошибки, но в случае валидных входных данных работает исправно:
PHP код:
<?php

$main_array 
file 'filename.txt' );

foreach ( 
$main_array as $key => $row )
{

  
$row trim $row );
  
$columns explode "|"$row );

  foreach ( 
$columns as $k => $column )
  {

    
$column trim $column );
    
$table[$key][$k] = $column;

    
$strlen strlen $column );
    if ( 
$strlen $table['len'][$k] )
    {
      
$table['len'][$k] = $strlen;
    }

  }
  
}

foreach ( 
$table['len'] as $int )
{
  
$max_len += $int;
}
$max_len += count $table['len'] ) * 3;
$max_len += 1;

$row_str str_pad ''$max_len'-' );


echo 
"
<pre>
"
;

echo 
$row_str;
foreach ( 
$table as $key => $row )
{
  echo 
"\r\n";
  echo 
"|";

  foreach ( 
$row as $k => $column )
  {
    
$column str_pad $column$table['len'][$k] );
    echo 
" " $column " |";
  }

  echo 
"\r\n";
  echo 
$row_str;
}

echo 
"
</pre>
"
;

?>
 
Ответить с цитированием

  #6  
Старый 11.07.2007, 17:23
Аватар для hhover
hhover
Познающий
Регистрация: 21.05.2007
Сообщений: 61
Провел на форуме:
79888

Репутация: 145
По умолчанию

Пример файла:
Код:
N |Название | скорость | Процент 
1 |alpha | 700 | 23 
2 |beta | 2000 | 65
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FAQ: Rainbow Tables Thanat0z Расшифровка хешей 11 05.04.2008 19:22
Hybrid Rainbow - Введение в новый метод восстановления паролей Thanat0z Расшифровка хешей 10 02.03.2008 19:57
Ответьте на вопросы Legion342 PHP, PERL, MySQL, JavaScript 5 22.11.2007 14:03
Разные скрипты r@mbler PHP, PERL, MySQL, JavaScript 4 06.03.2007 18:08
Долбим Sql’ные базы данных k00p3r Чужие Статьи 0 13.06.2005 14:13



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ