Здравствуйте, я не особо хорошо разбираюсь в php, но появилась необходимость грузить из текстового файла данные на сайт. В общем вот в чем проблема.
Нужно брать из текстового файла 300 символов, сохраняя все абзацы и пробелы. если в файле больше символов чем можно вывести на странице то создается еще одна страница, на которой выводится продолжение текста. буду признателен если поможете с данным решением. Нашел код но он не совсем мне подходит так как выводит определенное количество строк.
<?php
if (!defined('DATALIFEENGINE')) die("Go fuck yourself!");
require ENGINE_DIR . '/data/config.php';
$newsid = intval($_REQUEST['id']);
$row2 = $db->super_query("SELECT id, date, onserver, news_id FROM " . PREFIX . "_files WHERE news_id ='$newsid'");
$book = $row2['onserver'];
$file = ROOT_DIR.'/uploads/files/'.$book;
if(file_exists($file)) $book_data = str_replace("\n" ,"<br/><br/>\n",file_get_contents($file));
else $book_data = "указанная книги не найдена";
/*echo $book_data;*/
//print ("<div class=eventNotifier>Ctrl+right</div>");
/*$filelink=@file($file);*/
$filelink = str_replace("\f" ,"<br/><br/>\n",@file($file));
// считаем кол-во строк
$count=count($filelink);
// максимальное кол-во строк на странице
$max="20";
// вводим переменную, указывающую номер страницы
if(empty($_GET["p"])){$_GET["p"]="1";}
$p=$_GET["p"];
// защита от ввода вместо номера страницы какой-нибудь ерунды
if(preg_match("/[%a-z_@.,^=:;а-я\"*()&$#№+\-!?<>\~`|[{}\]]/i", $p))
{die(header("Location:index.php?do=book&id=".$newsid.""));}
// если кто-то вводит номер страницы больше, чем всего у нас страниц
$total=ceil($count/$max);
if($p>$total){$p=$total;}
$first=$p*$max-$max;
$last=($p*$max)-1;
for($i=$first;$i<=$last;$i++)
{
if(@$filelink[$i]){@$list= "$filelink[$i]";}
}
for($i=$first;$i<=$last;$i++) {
$text = $text.$filelink["$i"];
}
//$text = fgets($filelink, 300);
/*
#две назад
print "<div>";
if(($p-2)>0):
$ptwoleft="<a class='first_page_link' href='index.php?do=book&id=".$newsid."&p=".($p-2)."'>".($p-2)."</a> ";
else:
$ptwoleft=null;
endif;
*/
#одна назад
if(($p-1)>0):
$poneleft="<a class='prev-link' href='index.php?do=book&id=".$newsid."&p=".($p-1)."'>".($p-1)."</a> ";
$ptemp=($p-1);
else:
$poneleft=null;
$ptemp=null;
endif;
#две вперед
/*if(($p+2)<=$total):
$ptworight=" <a class='first_page_link' href='index.php?do=book&id=".$newsid."&p=".($p+2)."'>".($p+2)."</a>";
else:
$ptworight=null;
endif;
*/
#одна вперед
if(($p+1)<=$total):
$poneright="<a class='next-link' href='index.php?do=book&id=".$newsid."&p=".($p+1)."'>".($p+1)."</a>";
$ptemp2=($p+1);
else:
$poneright=null;
$ptemp2=null;
endif;
/*# в начало
if($p!=1 && $ptemp!=1 && $ptemp!=2):
$prevp="<span id='first_page_link'><a href='index.php?do=book&id=".$newsid."&p=1' class='first_page_link' title='В начало'><<</a></span> ";
else:
$prevp=null;
endif;
#в конец
if($p!=$total && $ptemp2!=($total-1) && $ptemp2!=$total):
$nextp=" ... <span id='first_page_link'><a href='index.php?do=book&id=".$newsid."&p=".$total."' class='first_page_link'>$total</a></span>";
else:
$nextp=null;
endif;
*/
$endpegs = "<br>".$prevp.$ptwoleft.$poneleft.'<span class="num_page_not_link"><b>'.$p.'</b></span>'.$poneright.$ptworight.$nextp;
print "</div>";
$tpl->load_template('book.tpl');
//$tpl->compile('content');
//$tpl->set('{test}', "Чтото");
//$tpl->set('{test2}', "Второе чтото");
$tpl->set('{endpegs}',$endpegs);
$tpl->set('{book}',$text);
$tpl->compile('content');
$tpl->clear();
//-------------------------------------------------====
// Вывод
//-------------------------------------------------====
/*echo book;*/