Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Программирование > PHP

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 27.09.2003, 09:03
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 21  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Цитата:
Оригинал написал(а) kompadre
Wordwrap специально создан для того что хочет афтор топика
Да. Но создан криво. Настолько криво, что пользоваться им можно только от полной безысходности.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 27.09.2003, 10:49
Nirva вне форума Посмотреть профиль Отправить личное сообщение для Nirva Посетить домашнюю страницу Nirva Найти все сообщения от Nirva
  № 22  
Nirva
"Вождь"
 
Аватар для Nirva

Регистрация: Jun 2002
Адрес: New Zealand
Сообщений: 4,600
Отправить сообщение для Nirva с помощью ICQ
поясни, крейзи, убдь добр
__________________
а мы летим орбитами путями не избитыми...

Старый 27.09.2003, 10:49
kompadre вне форума Посмотреть профиль Отправить личное сообщение для kompadre Найти все сообщения от kompadre
  № 23  
kompadre
 
Аватар для kompadre

Регистрация: Aug 2001
Адрес: Barcelona
Сообщений: 1,277
Отправить сообщение для kompadre с помощью ICQ
Криво ? Интересно ...

После длительного анализа постулатов 1, 2, 3 (постулаты правильные) паралельно проанализируем-ка постулат который стоял перед разроботчиками ПХП - разбить большие слова дабы они не ломали ХТМЛь оформление.

Пример на верху - текстареа в которую помещаеться максимум 10 букв. Что делать ? Разбить большие слова на маленькие. Вопрос стоит - "где бить" ?

Самый быстрый вариант - разбить "in fraganti" - где видим буквы вместе больше максимума, там и режим . Но чем это кривее чем разбить учитывая все константы ? Все равно слово битое получаеться, как не крути. Да и читаться лучше будет. Читатель не подсознательно привыкает к правилам оформления. Вот и привыкнек врапу после 10 букв подряд. А в твоем варианте врап будет вылезать визально "где попало".

Или я опять недопонял ?

Покажи альтернативу, напиши функцию врапа со всеми постулатами.

Старый 27.09.2003, 13:59
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 24  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Цитата:
Оригинал написал(а) kompadre
Покажи альтернативу, напиши функцию врапа со всеми постулатами.
Легко:

PHP код:
<?php

define
('MAX_WORD_LEN',21);
define('MAX_PART_LEN',15);
define('MIN_PART_LEN',4);

function 
split_long_words($text) {
  return 
preg_replace_callback('/([^ \t\r\n-]{'.MAX_WORD_LEN.',})/','_split_long_word',$text);
}

function 
_split_long_word($matched) {
  
$word $matched[1];
  
$temp '';
  
$charsLeft strlen($word);
  
$offset 0;
  while (
$charsLeft>0) {
    if (
$charsLeft>MAX_PART_LEN)
      if (
$charsLeft-MAX_PART_LEN>=MIN_PART_LEN)
        
$partLen MAX_PART_LEN;
      else
        
$partLen $charsLeft-MIN_PART_LEN;
    else
      
$partLen $charsLeft;
    
$temp .= ' '.substr($word,$offset,$partLen);
    
$offset += $partLen;
    
$charsLeft -= $partLen;
  }
  return 
substr($temp,1);
}

$text "дизоксирибонуклеиновая кислота";

$text1 split_long_words($text);

echo 
"\n--------------\n$text1";

$text2 wordwrap($text,MAX_WORD_LEN," ",1);

echo 
"\n--------------\n$text2";

?>
Выдача:

Код:
--------------
дизоксирибонукл еиновая кислота
--------------
дизоксирибонуклеинова я кислота
Отрыв одиночной буквы -- однозначно хуже, чем оторвать фрагмент заметного размера.

Далее: за 10 минут можно научить скрипт находить сравнительно удобные места для резки, чтобы результат меньше царапал ухо. Но обычно сие не требуется.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 27.09.2003, 14:29
Nirva вне форума Посмотреть профиль Отправить личное сообщение для Nirva Посетить домашнюю страницу Nirva Найти все сообщения от Nirva
  № 25  
Nirva
"Вождь"
 
Аватар для Nirva

Регистрация: Jun 2002
Адрес: New Zealand
Сообщений: 4,600
Отправить сообщение для Nirva с помощью ICQ
*офигел, слов нет*
__________________
а мы летим орбитами путями не избитыми...

Старый 27.09.2003, 18:07
kompadre вне форума Посмотреть профиль Отправить личное сообщение для kompadre Найти все сообщения от kompadre
  № 26  
kompadre
 
Аватар для kompadre

Регистрация: Aug 2001
Адрес: Barcelona
Сообщений: 1,277
Отправить сообщение для kompadre с помощью ICQ
Хорошо

Старый 27.09.2003, 18:42
nagash вне форума Посмотреть профиль Отправить личное сообщение для nagash Посетить домашнюю страницу nagash Найти все сообщения от nagash
  № 27  
nagash
Ветеран форума
 
Аватар для nagash

Регистрация: Jul 2001
Адрес: Москва
Сообщений: 3,088
Отправить сообщение для nagash с помощью ICQ
=)

Создать новую тему   Часовой пояс GMT +4, время: 01:32.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 01:32.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.