⑴ php 长文章插入分页符进行分页
我的都没有自动分页,不过我添加时就分页了,这样更好,插入分页符,麻烦吧,个人建议而己。
⑵ php分页功能怎么实现
php本身是没有分页概念的,分页是URL传参,然后通过mysql查询语句到数据库获取数据,然后实现的分页,url上的参数,通过PHP的$_GET都是可以获取到的。
现在市面上的PHP框架基本都有PHP分页类,参照文档直接调用就好了,如果想看实现过程,可以去下载一个TP框架,然后打开里面的分页类查看里面的源代码。
⑶ 文章内容太长在php中如何做分页
在编辑器中插入分页符号
例如 ##分页##
使用PHP 的explode方法 分割
$pages = explode("##分页##",$html);
获得总页数
$count=count($pages);
获取第一页
$html = $pages[0];
⑷ PHP网页中内容太多如何让他自动分页
<?php /* PHP动态分页测试代码 */ //代码开始↓ if(empty($page)) $page=0; //默认页码值为0(即第一页) $total=152; //整体要显示的条目总数 $pagenum=10; //每页显示条目数 //写各页的内容(可以处理其他事件) for($i=$page*$pagenum;$i<$page*$pagenum+$pagenum;$i++){ $tmpstr="第 ". ($i+1) ." 条记录"; if($i<$total) print "$tmpstr<br>"; } //end of for //得到总页数 $tpage 的值 if($total%$pagenum==0) { //若被整除 $tpage=$total/$pagenum; } else { //否则用floor函数取得最大整数然后+1 $tpage=floor($total/$pagenum)+1; } //智能化的前进后退+段页码方式实现超链 $id_pd=floor($page/5)*5; //当前页页码数段初始id值 $startpagepre=$id_pd-5; $startpagenext=$id_pd+5; $lastpage=$tpage-1; print "<p>"; //处理首页(<<)和前五页(<) if($page==0){ print "<span style=\"color:red\"><<</span> "; }else{ print "<a title=\"首页\" href=\"$php_self?page=0\"><<</a> "; } if($page<5){ print "<span style=\"color:red\"><</span> "; }else{ print "<a title=\"前五页\" href=\"$php_self?page=$startpagepre\"><</a> "; } //写页段中的页码超链 for($i=$id_pd;$i<$id_pd+5;$i++){ $pg=$i+1; //页码数 if($i==$page){ if($i<$tpage) print "<span style=\"color:red\">$pg</span></a> "; }else{ if($i<$tpage) print "<a href=\"$php_self?page=$i\">$pg</a> "; } } //处理后五页(>)和尾页(>>) if($page>$tpage-5){ print "<span style=\"color:red\">></span> "; }else{ print "<a title=\"后五页\" href=\"$php_self?page=$startpagenext\">></a> "; } if($page==$lastpage){ print "<span style=\"color:red\">>></span> "; }else{ print "<a title=\"尾页\" href=\"$php_self?page=$lastpage\">>></a> "; } print "总页数 <span style=\"color:red\">$tpage</span></p>"; ?>
⑸ phpcms V9 解决内容页太长怎么手动分页
在phpcms的内容编辑器中使用分页符可实现手动分页,如下图:
使用方法:
将光标移动到要分页的位置,然后点击,会自动插入分页符[page]。另外,确保“分页方式”一项选择“手动分页”。这样,当内容在前端显示的时候会自动在此处断开分页了。
注意:
手动分页的时候插入位置要合理,主要是避免将内容中成对的html标签拆开而造成显示不正常。
phpcms后台使用教程可参考官方文档和iphpcms的教程。
⑹ php如何根据内容的大小分页
分页显示是一种非常常见的浏览和显示大量数据的方法,属于web编程中最常处理的事件之一。对于web编程的老手来说,编写这种代码实在是和呼吸一样自然,但是对于初学者来说,常常对这个问题摸不着头绪,因此特地撰写此文对这个问题进行详细的讲解,力求让看完这篇文章的朋友在看完以后对于分页显示的原理和实现方法有所了解。本文适合初学者阅读,所有示例代码均使用php编写。
我以前在达内上课的时候,做过很多案例,这是基本的教材 ,很多问题在网上运气好能得到接到,我觉得你有个系统的培训会比较好,规范自己的学习进程和代码。
原理
所谓分页显示,也就是将数据库中的结果集人为的分成一段一段的来显示,这里需要两个初始的参数:
每页多少条记录($PageSize)?
当前是第几页($CurrentPageID)?
现在只要再给我一个结果集,我就可以显示某段特定的结果出来。
至于其他的参数,比如:上一页($PreviousPageID)、下一页($NextPageID)、总页数($numPages)等等,都可以根据前边这几个东西得到。
以mysql数据库为例,如果要从表内截取某段内容,sql语句可以用:select * from table limit offset, rows。看看下面一组sql语句,尝试一下发现其中的规率。
前10条记录:select * from table limit 0,10
第11至20条记录:select * from table limit 10,10
第21至30条记录:select * from table limit 20,10
……
这一组sql语句其实就是当$PageSize=10的时候取表内每一页数据的sql语句,我们可以总结出这样一个模板:
select * from table limit ($CurrentPageID - 1) * $PageSize, $PageSize
拿这个模板代入对应的值和上边那一组sql语句对照一下看看是不是那么回事。搞定了最重要的如何获取数据的问题以后,剩下的就仅仅是传递参数,构造合适的sql语句然后使用php从数据库内获取数据并显示了。以下我将用具体代码加以说明。
3、简单代码
请详细阅读以下代码,自己调试运行一次,最好把它修改一次,加上自己的功能,比如搜索等等。
<?php
// 建立数据库连接
$link = mysql_connect("localhost", "mysql_user", "mysql_password")
or die("Could not connect: " . mysql_error());
// 获取当前页数
if( isset($_GET['page']) ){
$page = intval( $_GET['page'] );
}
else{
$page = 1;
}
// 每页数量
$PageSize = 10;
// 获取总数据量
$sql = "select count(*) as amount from table";
$result = mysql_query($sql);
$row = mysql_fetch_row($result);
$amount = $row['amount'];
// 记算总共有多少页
if( $amount ){
if( $amount < $page_size ){ $page_count = 1; } //如果总数据量小于$PageSize,那么只有一页
if( $amount % $page_size ){ //取总数据量除以每页数的余数
$page_count = (int)($amount / $page_size) + 1; //如果有余数,则页数等于总数据量除以每页数的结果取整再加一
}else{
$page_count = $amount / $page_size; //如果没有余数,则页数等于总数据量除以每页数的结果
}
}
else{
$page_count = 0;
}
// 翻页链接
$page_string = '';
if( $page == 1 ){
$page_string .= '第一页|上一页|';
}
else{
$page_string .= '<a href="/?page=1>";第一页</a>|<a href="/?page='."($page-1).'>上一页</a>|';
}
if( ($page == $page_count) || ($page_count == 0) ){
$page_string .= '下一页|尾页';
}
else{
$page_string .= '<a href="/?page='."($page+1).'>下一页</a>|<a href="/?page='."$page_count.'>尾页</a>';
}
// 获取数据,以二维数组格式返回结果
if( $amount ){
$sql = "select * from table order by id desc limit ". ($page-1)*$page_size .", $page_size";
$result = mysql_query($sql);
while ( $row = mysql_fetch_row($result) ){
$rowset[] = $row;
}
}else{
$rowset = array();
}
// 没有包含显示结果的代码,那不在讨论范围,只要用foreach就可以很简单的用得到的二维数组来显示结果
?>
4、OO风格代码
以下代码中的数据库连接是使用的pear db类进行处理
<?php
// FileName: Pager.class.php
// 分页类,这个类仅仅用于处理数据结构,不负责处理显示的工作
Class Pager
{
var $PageSize; //每页的数量
var $CurrentPageID; //当前的页数
var $NextPageID; //下一页
var $PreviousPageID; //上一页
var $numPages; //总页数
var $numItems; //总记录数
var $isFirstPage; //是否第一页
var $isLastPage; //是否最后一页
var $sql; //sql查询语句
function Pager($option)
{
global $db;
$this->_setOptions($option);
// 总条数
if ( !isset($this->numItems) )
{
$res = $db->query($this->sql);
$this->numItems = $res->numRows();
}
// 总页数
if ( $this->numItems > 0 )
{
if ( $this->numItems < $this->PageSize ){ $this->numPages = 1; }
if ( $this->numItems % $this->PageSize )
{
$this->numPages= (int)($this->numItems / $this->PageSize) + 1;
}
else
{
$this->numPages = $this->numItems / $this->PageSize;
}
}
else
{
$this->numPages = 0;
}
switch ( $this->CurrentPageID )
{
case $this->numPages == 1:
$this->isFirstPage = true;
$this->isLastPage = true;
break;
case 1:
$this->isFirstPage = true;
$this->isLastPage = false;
break;
case $this->numPages:
$this->isFirstPage = false;
$this->isLastPage = true;
break;
default:
$this->isFirstPage = false;
$this->isLastPage = false;
}
if ( $this->numPages > 1 )
{
if ( !$this->isLastPage ) { $this->NextPageID = $this->CurrentPageID + 1; }
if ( !$this->isFirstPage ) { $this->PreviousPageID = $this->CurrentPageID - 1; }
}
return true;
}
/***
*
* 返回结果集的数据库连接
* 在结果集比较大的时候可以直接使用这个方法获得数据库连接,然后在类之外遍历,这样开销较小
* 如果结果集不是很大,可以直接使用getPageData的方式获取二维数组格式的结果
* getPageData方法也是调用本方法来获取结果的
*
***/
function getDataLink()
{
if ( $this->numItems )
{
global $db;
$PageID = $this->CurrentPageID;
$from = ($PageID - 1)*$this->PageSize;
$count = $this->PageSize;
$link = $db->limitQuery($this->sql, $from, $count); //使用Pear DB::limitQuery方法保证数据库兼容性
return $link;
}
else
{
return false;
}
}
/***
*
* 以二维数组的格式返回结果集
*
***/
function getPageData()
{
if ( $this->numItems )
{
if ( $res = $this->getDataLink() )
{
if ( $res->numRows() )
{
while ( $row = $res->fetchRow() )
{
$result[] = $row;
}
}
else
{
$result = array();
}
return $result;
}
else
{
return false;
}
}
else
{
return false;
}
}
function _setOptions($option)
{
$allow_options = array(
'PageSize',
'CurrentPageID',
'sql',
'numItems'
);
foreach ( $option as $key => $value )
{
if ( in_array($key, $allow_options) && ($value != null) )
{
$this->$key = $value;
}
}
return true;
}
}
?>
<?php
// FileName: test_pager.php
// 这是一段简单的示例代码,前边省略了使用pear db类建立数据库连接的代码
require "Pager.class.php";
if ( isset($_GET['page']) )
{
$page = (int)$_GET['page'];
}
else
{
$page = 1;
}
$sql = "select * from table order by id";
$pager_option = array(
"sql" => $sql,
"PageSize" => 10,
"CurrentPageID" => $page
);
if ( isset($_GET['numItems']) )
{
$pager_option['numItems'] = (int)$_GET['numItems'];
}
$pager = @new Pager($pager_option);
$data = $pager->getPageData();
if ( $pager->isFirstPage )
{
$turnover = "首页|上一页|";
}
else
{
$turnover = "<a href='?page=1&numItems=".$pager->numItems."'>首页</a>|<a href="/?page=".$pager->PreviousPageID."&numItems=".$pager->numItems."'>上一页</a>|";
}
if ( $pager->isLastPage )
{
$turnover .= "下一页|尾页";
}
else
{
$turnover .= "<a href="/?page=".$pager->NextPageID."&numItems=".$pager->numItems."'>下一页</a>|<a href="/?page=".$pager->numPages."&numItems=".$pager->numItems."'>尾页</a>";
}
?>
需要说明的地方就是不同数据库的兼容性,在不同的数据库里截获一段结果的写法是不一样的。
mysql: select * from table limit offset, rows
pgsql: select * from table limit m offset n
......
所以要在类里边获取结果的时候需要使用pear db类的limitQuery方法。
ok,写完收功,希望花时间看完这些文字的你不觉得是浪费了时间。
回答者
⑺ php长文章分页类,手工输入分页代码{nextpage}没有效果怎么搞的
按说strpos是与空不空格无关的。我觉得你可能是总字数小于一页显示字数
所以都没有运行到手动分页。
你把$this->page_word = 1000; 把这个值改小点,小于你一页的字数就行了,或者你修改他的function cut_str()
优先手动分页。
⑻ thinkcmf 或 thinkphp 对于文章很长的内容怎么进行内容分页处理
首先引入分页类page.class.php
然后读取txt文件内容,根据参数ipage来显示不同内容
$content = file_get_contents('sucaihuo.txt');
$ipage = isset($_GET["ipage"]) ? intval($_GET["ipage"]) : 1;
$CP = new cutpage($content);
$page = $CP->cut_str();
echo $page[$ipage - 1];
echo '<div class="pages">' . $CP->pagenav() . '</div>';