Постраничное чтение из txt

Статус
Закрыто для дальнейших ответов.

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
У меня скрипт, который делает постраничный вывод текста из txt файлов, но там проблема: он обрезает по буквам и получается, что обрезает в конце страницы слово и продолжает его на другой.. Как сделать вывод по словам? Чтобы он разделял слова?
Код:
$five = 1000;
$page = intval($_GET['page']);
$file = implode('', file($res['adres_txt']));
$obsum = $page * $five;
$nasum = $obsum - $five;
$end = ceil(strlen($file) / $five);
if($page > $end || $page < 1) {
$page = $end;
$obsum = $page * $five;
$nasum = $obsum - $five;
}
for($i = $nasum; $i < $obsum; $i++) $ret .= $file[$i];
echo $ret;
 

ArhAngel

Well-Known Member
Регистрация
07.05.2011
Сообщения
378
Код:
$five = 1000;
$page = intval($_GET['page']);
$file = implode('', file($res['adres_txt']));
$obsum = $page * $five;
$nasum = $obsum - $five;
$end = ceil(strlen($file) / $five);
if($page > $end || $page < 1) {
$page = $end;
$obsum = $page * $five;
$nasum = $obsum - $five;
}
//Вот что в голову пришло---
for($i = $nasum; $i >= 0; $i--) if($file[$i] == ' '){
$nasum = $i;
break;
}
$file_len = strlen($file);
for($i = $obsum; $i < $file_len; $i++) if($file[$i] == ' '){
$obsum = $i;
break;
}
//----------------------------------

for($i = $nasum; $i < $obsum; $i++) $ret .= $file[$i];
echo $ret;
писал с головы, могут быть мелкие синтаксически ошибки.

скрипт будет нормально работать только с CP1251, ну разве что у вас php5.4 стоит с поддержкой utf-8.
 

rhamdeew

Well-Known Member
Регистрация
12.04.2012
Сообщения
57
Чтобы работало и на php 5.3 можно выставить в .htaccess mbstring_overload 2 либо же явно использовать вместо strlen функцию mb_strlen
 
Статус
Закрыто для дальнейших ответов.
Верх Низ