- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Нужно сделать вывод страниц книги для чтения в онлайне.
Если с абзацами, отступами и выступами понятно, то что делать с последней строчкой станицы, пока не пойму.
Ситуэйшен вроде бы проста:
нужно вывести в диве 30 строк, словить и скрыть 31-ю и на новой странице чтобы первая строчка была той, которая была 31-й на предыдущей.:confused:
ок, тогда может кто знает как попроще разбить большой текст на страницы, чтобы они были примерно одинакового размера.
Читайте файл в массив
$arrStr=file(filename);
количество строк
$n_str=sizeof($arrStr);
и выводите на каждой странице нужное количество строк
например если выводить по $n_ofstr строк и страница $n (от 1), то так:
$n_last=($n*$n_ofstr)>$n_str?$n_str двоеточие ($n*$n_ofstr);
for ($i=($n-1)*$n_ofstr;$i<$n_last;$i++){
print $arrStr[$i].'<br />';
}
строки-то разные и они иногда перетекают и получается из одной - две.
Плюс - шрифты в системах бывают разные, соотв. по ширине символов тоже не получится. Надо как-то "на лету".
размер_файла_в_байтах / кол-во_символов_на_страницу = кол-во_страниц (для пагинации)
Для формирования страницы:
(используем $offset и $maxlen). $offset = (номер_страницы - 1) * кол-во_символов_на_страницу. $maxlen = кол-во_символов_на_страницу.
Это самое простое. Плюс я бы сделал нормальное обрезание, чтобы полслова в начале и конце не было.
P.S. Еще можно не лениться, а засунуть книгу в базу постранично статьями, красиво разбив.
размер_файла_в_байтах / кол-во_символов_на_страницу = кол-во_страниц (для пагинации)
Для формирования страницы:
(используем $offset и $maxlen). $offset = (номер_страницы - 1) * кол-во_символов_на_страницу. $maxlen = кол-во_символов_на_страницу.
Это самое простое. Плюс я бы сделал нормальное обрезание, чтобы полслова в начале и конце не было.
P.S. Еще можно не лениться, а засунуть книгу в базу постранично статьями, красиво разбив.
в том-то и дело, что это самое простое.
В идеале нужно, чтобы в квадрате, скажем 100х200 было 10 строк выровненных по ширине, и последнее слово было ровно прижато к правому краю.
Тупой подсчет ничего не даст, потому что ширина буков неодинакова и есть к тому же такие вещи как кернинг (это когда у буков разный интервал, в зависимости от их фигуры).
Может быть просто кто-то видел что-то подобное на www? Может, передраконю.
Хотя есть подозрение что решения просто нет.
А при чём тут сервер. Вы в сторону CSS не смотрели, в частности style="text-align:justify;" ?
ясно.
Будем считать, что тема закрыта