开发者社区> 问答> 正文

php伪静态求助啊,分页那边的不会写啊:报错

<?php

@$page = ceil($_GET['page']);
if(!function_exists('pageft')){
function pageft($totle,$displaypg=20,$shownum=0,$showtext=0,$showselect=0,$showlvtao=7,$showselects=20,$showjump=0,$url='$urls'){
global $page,$firstcount,$pagenav,$_SERVER,$prepg;
$GLOBALS["displaypg"]=$displaypg;

if(!$page||$page<0) $page=1;
if(!$url){ $url=$urls;}
$parse_url=parse_url($url);
$url_query=@$parse_url["query"]; 
if($url_query){
$url_query=@ereg_replace("(^|&)page=$page","",$url_query);
$url=str_replace($parse_url["query"],$url_query,$url);
if($url_query) $url.="&page"; else $url.="page";
}else {
$url.="?page";
}
$lastpg=ceil($totle/$displaypg); 
$page=min($lastpg,$page);
$prepg=$page-1; 
$nextpg=($page==$lastpg ? 0 : $page+1);
$firstcount=($page-1)*$displaypg;
if($page>$lastpg) $page=$lastpg;
if ($showtext==1){
$pagenav="<span class='disabled'>".($totle?($firstcount+1):0)."-".min($firstcount+$displaypg,$totle)."/$totle 记录</span><span class='disabled'>$page/$lastpg 页</span>";
}else{
$pagenav="";	
}
if($lastpg<=1) return false;

if($prepg) $pagenav.="<a href='$url=1'>首页</a>"; else $pagenav.='<span class="disabled">首页</span>';
if($prepg) $pagenav.="<a href='$url=$prepg'>上一页</a>"; else $pagenav.='<span class="disabled">上一页</span>';
if ($shownum==1){
	$o=$showlvtao;
	$u=ceil($o/2);
	$f=$page-$u;
	if($f<0){$f=0;}
	$n=$lastpg;
	if($n<1){$n=1;}
	if($page==1){
		$pagenav.='<span class="current">1</span>';
	}else{
		$pagenav.="<a href='$url=1'>1</a>";
	}
	///////////////////////////////////////
	for($i=1;$i<=$o;$i++){
		if($n<=1){break;}
		$c=$f+$i;
		if($i==1 && $c>2){
			$pagenav.='...';
		}
		if($c==1){continue;}
		if($c==$n){break;}
		if($c==$page){
			$pagenav.='<span class="current">'.$page.'</span>';
		}else{
			$pagenav.="<a href='$url=$c'>$c</a>";
		}
		if($i==$o && $c<$n-1){
			$pagenav.='...';
		}
		if($i>$n){break;}	
	}
	if($page==$n && $n!=1){
		$pagenav.='<span class="current">'.$n.'</span>';
	}else{
		$pagenav.="<a href='$url=$n'>$n</a>";
		}
}

if($nextpg) $pagenav.="<a href='$url=$nextpg'>下一页</a>"; else $pagenav.='<span class="disabled">下一页</span>';
if($nextpg) $pagenav.="<a href='$url=$lastpg'>尾页</a>"; else $pagenav.='<span class="disabled">尾页</span>';
if($showjump==1){
$pagenav.="转到 <input style='width:22px; height:13px;' type='text'  title='请输入要跳转到的页数并回车' onkeyup=\"this.value=this.value.replace(/\D/g,'')\" onafterpaste=\"this.value=this.value.replace(/\D/g,'')
\" onkeydown=\"javascript:if(event.charCode==13||event.keyCode==13){if(!isNaN(this.value)){document.location.href='$url='+this.value+'';}return false;}\"/> 页";
}
if ($showselect==1){
$pagenav.=" 跳至 <select name='topage' size='1' style=' height:19px;' onchange='window.location=\"$url=\"+this.value'>\n";
$lvtao=$page-$showselects/2;
if($lvtao<=0){
$lvtaos=1;
}else{
$lvtaos=$lvtao;  
}

$lvtaoe=$page+$showselects/2;
if($page<$showselects/2&&$showselects<=$lastpg){
$lvtaoe=$showselects;  
}elseif($lvtaoe>=$lastpg){
$lvtaoe=$lastpg; 
}
for($i=$lvtaos;$i<=$lvtaoe;$i++){
if($i==$page) $pagenav.="<option value='$i' selected>$i</option>\n";
else $pagenav.="<option value='$i'>$i</option>\n";
}
$pagenav.="</select> 页";
}
}
}
?>

这是 调用的分页类

	case "news":
        global $prepg, $page;
        $incPath = dirname(__FILE__);
        require_once "{$incPath}/inc/init.php";
        $page_size=6;
		$sub_pages=10;
	    $goodssortid=$indexImpl->select("sort","name,id","type=2","",$limit='');
		$goodssortid=rs2Array($goodssortid);
		$news=$indexImpl->select("archive","id","sortid=1","",$limit='');
		$news=rs2Array($news);
		$countnews=count($news);
	    pageft($countnews,$page_size,1,1,0,6,20,1,$url="index.php?action=news");//---------------------------------$url里的伪静态怎么写
//      参数一  总数 
//      参数二  每页数量
//      参数三  开启与关闭数字分页 0关闭 1开启
//      参数四  开启总记录及当前页信息  1-20/100000   记录1/5000 页  0关闭 1开启
//      参数五  下拉选择框开关   0关闭 1开启
//      参数六  数字每页中间显示数量 最好为奇数  并且需开启参数三
//      参数七  下拉选择框中显示数量  需要开启参数五
//      参数八  跳转框开关  0关闭 1开启
		$newslist = $indexImpl->select("archive","*","sortid=1","",$limit="$firstcount,$page_size"); 
		$newslist = rs2Array($newslist);
		//print_r($newslist);
		$smarty->assign('pagenav',$pagenav);
		$smarty->assign('newslist',$newslist);
		$smarty->assign('goodssortid',$goodssortid);	
        $smarty->display("news.tpl",$_SERVER['REQUEST_URI']);
    break;			

 这里是程序代码

展开
收起
kun坤 2020-06-09 22:12:27 577 0
1 条回答
写回答
取消 提交回答
  • 可能代码放得太多了,大家莫有心情看下去
    ######你管你正常的写分页,其他的事情是 rewrite 去做的######不行的啊,不成功######

    引用来自“cema”的答案

    你管你正常的写分页,其他的事情是 rewrite 去做的
    代码里我是这么写的
    pageft($countnews,$page_size,1,1,0,6,20,1,$url="news-p(这里我不知道怎么放参数).html");
    .htaccess里我是这么写的
    RewriteRule ^([a-zA-Z]+)-p([0-9]+).html$ index.php?action=$1&page=$2
    结果运行出来的是这样的
    news-p(这里不知道怎么写).html?page=1...,不知道为什么
    html后面怎么会有参数?page,可能是累里面的判断有关,到底该怎么解决呢
    ######回复 @cema : 还是不行,谢谢了###### @cema 你 rewrite 如果没错的话,你分页函数直接传 action 进去 然后函数里 $action-下一页数.html 就是下一页的地址###### @YIPU 你的action 好像没有重写,也不清除你的思路###### @YIPU 去掉 action 是这样的,RewriteRule ^([a-zA-Z]+)-p([0-9]+).html$ $1index.php?page=$2######回复 @cema : 帅哥具体点啊,新手 啊######

    引用来自“YIPU”的答案

    引用来自“cema”的答案

    你管你正常的写分页,其他的事情是 rewrite 去做的
    代码里我是这么写的
    pageft($countnews,$page_size,1,1,0,6,20,1,$url="news-p(这里我不知道怎么放参数).html");
    .htaccess里我是这么写的
    RewriteRule ^([a-zA-Z]+)-p([0-9]+).html$ index.php?action=$1&page=$2
    结果运行出来的是这样的
    news-p(这里不知道怎么写).html?page=1...,不知道为什么
    html后面怎么会有参数?page,可能是累里面的判断有关,到底该怎么解决呢
    这个参数是分页类加上去的吧
    ######我就是不知道加哪个啊######继续求助
    ###### @leo108
    ###### @红薯
    ######你的分页类不支持这种伪静态,要改的话挺麻烦######那你有没有更好的分页类
    2020-06-09 22:12:33
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
阿里云栖开发者沙龙PHP技术专场-深入浅出网络编程与swoole内核-吴镇宇 立即下载
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载