HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[php] нужен скрипт создания/отображения таблицы
  #1  
Старый 09.07.2007, 21:58
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
Познающий
Регистрация: 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
Постоянный
Регистрация: 06.12.2006
Сообщений: 762
Провел на форуме:
5352530

Репутация: 2062


По умолчанию

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

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

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

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

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

  #5  
Старый 11.07.2007, 02:16
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
Познающий
Регистрация: 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 5 22.11.2007 14:03
Разные скрипты r@mbler PHP 4 06.03.2007 18:08



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


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




ANTICHAT.XYZ