Автор Тема: Таблица расползается...  (Прочитано 15174 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Lion

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 474
  • +0/-0
  • 0
    • Просмотр профиля
Таблица расползается...
« : 24 Декабря 2001, 22:20:24 »
Пишу вот скрипт комментариев и вопрос возник: А че делать если юзер введет что то типа пары сотен букв "a", при таком развитии событий таблица расползатся далего-далеко за экран. Как бы это разбить на определенное кол-во символов и что б читаемость не пострадала ? Или у самой таблицы как то можно нерасползаемость задать ?

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Таблица расползается...
« Ответ #1 : 24 Декабря 2001, 23:31:37 »
Уже в третий раз сюда эту функцию пишу:

function break_long_words($source_text,$lng)
{
   
$regExp=\'/(\\S{\'.$lng.\',})/ei\';
   $res_text=preg_replace($regExp,"wordwrap(\'\\\\1\',$lng,\'\\n\',1)",$source_text);
   return $res_text;
}
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Lion

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 474
  • +0/-0
  • 0
    • Просмотр профиля
Таблица расползается...
« Ответ #2 : 24 Декабря 2001, 23:35:49 »
А если какой то зверь введет строку которая будет без пробелов и длинной больше $lng ?

Оффлайн Stek

  • Обожатель PHP
  • Ветеран
  • *****
  • Сообщений: 532
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.phpdevs.com
Таблица расползается...
« Ответ #3 : 24 Декабря 2001, 23:36:32 »
$lng - допустимиое колличество символов ?
PHP без башни - сделай свою жизнь разнообразнее.
Разбираю скрипты, собираю заново, вытираю пыль с баз данных.

Оффлайн Lion

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 474
  • +0/-0
  • 0
    • Просмотр профиля
Таблица расползается...
« Ответ #4 : 24 Декабря 2001, 23:41:03 »
Приведите кто то пример, как вырезать строку(без пробелов) если она длиннее длинны $lng ?
« Последнее редактирование: 24 Декабря 2001, 23:52:53 от Lion »

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
Таблица расползается...
« Ответ #5 : 25 Декабря 2001, 00:51:59 »
Lion
?
$str = \'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\';
$lent = 12;
$steps = ceil(strlen($str)/$lent);
echo\'\';
for($step=0;$step<$steps;$step++)
{
$result_string = substr($str,$step*$lent,$lent);
$perm_lentb = strlen($result_string);
echo\'\';

}
echo\'
\'.$step.\'\'.$result_string.\'\'.$perm_lentb.\'
\';
?>
AS IS...

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Таблица расползается...
« Ответ #6 : 25 Декабря 2001, 00:53:59 »
$text="lksjdlkjljдвлаоповадлподвлаодлпо";
echo break_long_words($text,5);

$lng - по сколько символов разбивать то есть в данном случае будет:
lksjd
lkjlj
двлао
повад
лподв
лаодл
по
то есть по 5 символов разобьет
Цитировать
Приведите кто то пример, как вырезать строку(без пробелов) если она длиннее длинны $lng ?
А зачем вырезать, разбей этой функцией и все.
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
Таблица расползается...
« Ответ #7 : 25 Декабря 2001, 00:58:38 »
А самому интересеней. Я, например, написал мульти конвертер из одной системы исчисления в другую, а через 20 минут нашел готовые функции В РНР. Баклан. Но все равно приятно, что смог сам сделать. Заодно и школьную математику вспомнил. :)
AS IS...

Оффлайн Lion

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 474
  • +0/-0
  • 0
    • Просмотр профиля
Таблица расползается...
« Ответ #8 : 25 Декабря 2001, 01:15:06 »
Цитировать
то есть по 5 символов разобьет


function break_long_words($source_text,$lng)
{
   $regExp=\'/(S{\'.$lng.\',})/ei\';
   $res_text=preg_replace($regExp,"wordwrap(\'\\1\',$lng,\'\\n\',1)",$source_text);
   return $res_text;
}

$a="PROVERKAV ERKAVERKAT ESTIROVANUE GAGFAGAGAGA";

echo break_long_words($a,8);

Выводит:
PROVERKAV ERKAVERKAT ESTIROVANUE GAGFAGAGAGA

Почему то не работает :(

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
Таблица расползается...
« Ответ #9 : 25 Декабря 2001, 01:34:09 »
Ха. А мое работает. :)
AS IS...

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
Таблица расползается...
« Ответ #10 : 25 Декабря 2001, 01:36:45 »
Как вариант, можно воспользоваться wordwrap($string,$symbols_in_string);
AS IS...

  • Гость
Таблица расползается...
« Ответ #11 : 25 Декабря 2001, 07:51:24 »
Я считаю, что лучше задать максимальное количество знаков в слове, т.к. длинные строки пишут только "кибрехулиганы", поэтому обрезай все лишнее....
Меньше будет рекламы на динамические страницы.
Лично я режу, а не  создаю переносы.

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
Таблица расползается...
« Ответ #12 : 25 Декабря 2001, 10:14:09 »
2Unregistered :
Ха. А как можно по твоему угадать максимальную длину слова при, например, полнотекстовом поиске по какой-нибудь специфичной базе? Например по базе лекарственных препаратов?
AS IS...

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Таблица расползается...
« Ответ #13 : 25 Декабря 2001, 19:18:06 »
Цитировать
Почему то не работает

Сори, перед перед единицей 2 слеша должно быть.
вот здесь
$res_text=preg_replace($regExp,"wordwrap(\'\\\\1
\',$lng,\'\\n\',1)",$source_text);

Что-то форум двойные слешт обрезает.


Цитировать
Ха. А мое работает

Ха, мое тоже работает :D
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Таблица расползается...
« Ответ #14 : 25 Декабря 2001, 20:46:38 »
Цитировать
Ха, мое тоже работает
Правда не совсем мое. Эту функцию я полгода назад спер с одно мессаги в fido7.ru.php :)
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28