长篇文章分页显示的代码要怎么写???我写的如下,但是会出现乱码,点击下一页就没有内容显示,要怎么修改?
<?phpif(isset($_GET["now_page"]))
{
$now_page = $_GET["now_page"];
$now_page = intval($now_page);
}
if($now_page==""||$now_page<1)
{
$now_page = 1;
}
$query_1=mysql_query("select * from tb_xxgk ",$conn);
while($myrow_1=mysql_fetch_array($query_1))
$info = $myrow_1[content];//信息内容
$each_page_save_words_num = 1000;//每$each_page_save_words_num个字换页
$count_words = mb_strlen($info,'UTF-8');//字符统计
$count_page = ceil($count_words/$each_page_save_words_num);//总页码
//开始字数:
$start_words = ($now_page-1)*$each_page_save_words_num;
//输出信息:/*
Utf-8、gb2312都支持的汉字截取函数
cut_str(字符串, 截取长度, 开始长度, 编码);
编码默认为 utf-8
开始长度默认为 0
*/
function cut_str($string,$start = 0, $sublen , $code = 'UTF-8')
{
if($code == 'UTF-8')
{
$pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";
preg_match_all($pa, $string, $t_string);
if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen));
return join('', array_slice($t_string[0], $start, $sublen));
}
else
{
$start = $start*2;
$sublen = $sublen*2;
$strlen = strlen($string);
$tmpstr = '';
for($i=0; $i< $strlen; $i++)
{
if($i>=$start && $i< ($start+$sublen))
{
if(ord(substr($string, $i, 1))>129)
{
$tmpstr.= substr($string, $i, 2);
}
else
{
$tmpstr.= substr($string, $i, 1);
}
}
if(ord(substr($string, $i, 1))>129) $i++;
}
if(strlen($tmpstr)< $strlen )
{
//$tmpstr.= "...";
}
return $tmpstr;
}
}
//$str = "abcd需要截取的字符串";
//echo cut_str($str, 8, 0, 'gb2312');
$out = cut_str($info,$start_words,$each_page_save_words_num ,'UTF-8');
//输出信息:完毕
echo $out.'<br/>';//分页处理
$show_page = 5;//显示5个页码
$url = "fy.php";//当前的文件名
//$last_page:上一页
//$next_page:下一页
//上一页
if($now_page>1)
{
$last_page = $now_page -1;
}
else
{
$last_page = 1;
}
//下一页
if($now_page<$count_page)
{
$next_page = $now_page +1;
}
else
{
$next_page = $count_page;
}
if($count_page<=$show_page)
{
$start = 1;
$end = $count_page;
}
else
{
if($now_page<=($show_page+1)/2)
{
$start = 1;
$end = $show_page;
}
else if($now_page>($count_page-($show_page+1)/2))
{
$start = $count_page - $show_page+1;
$end = $count_page;
}
else
{
$start = $now_page - ($show_page-1)/2;
$end = $now_page + ($show_page-1)/2;
}
}
$page = "<a href='".$url."?now_page=1'>首页</a> ";
$page .= "<a href='".$url."?now_page=".$last_page."'>上一页</a> ";
//echo $start.'<br/>';
//echo $end.'<br/>';
for($i=$start;$i<=$end;$i++)
{
if($i==$now_page)
{
$page .= "<a style=\"color:#ff0000;\" href='".$url."?now_page=".$i."'>".$i."</a> ";//当前页颜色变红
}
else
{
$page .= "<a href='".$url."?now_page=".$i."'>".$i."</a> ";
}
//echo $page.'<br/>';
}
$page .= "<a href='".$url."?now_page=".$next_page."'>下一页</a> ";
$page .= "<a href='".$url."?now_page=1".$count_page."'>尾页</a> ";
echo $page;
?>
<?phpif(isset($_GET["now_page"]))
{
$now_page = $_GET["now_page"];
$now_page = intval($now_page);
}
if($now_page==""||$now_page<1)
{
$now_page = 1;
}
$query_1=mysql_query("select * from tb_xxgk ",$conn);
while($myrow_1=mysql_fetch_array($query_1))
$info = $myrow_1[content];//信息内容
$each_page_save_words_num = 1000;//每$each_page_save_words_num个字换页
$count_words = mb_strlen($info,'UTF-8');//字符统计
$count_page = ceil($count_words/$each_page_save_words_num);//总页码
//开始字数:
$start_words = ($now_page-1)*$each_page_save_words_num;
//输出信息:/*
Utf-8、gb2312都支持的汉字截取函数
cut_str(字符串, 截取长度, 开始长度, 编码);
编码默认为 utf-8
开始长度默认为 0
*/
function cut_str($string,$start = 0, $sublen , $code = 'UTF-8')
{
if($code == 'UTF-8')
{
$pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";
preg_match_all($pa, $string, $t_string);
if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen));
return join('', array_slice($t_string[0], $start, $sublen));
}
else
{
$start = $start*2;
$sublen = $sublen*2;
$strlen = strlen($string);
$tmpstr = '';
for($i=0; $i< $strlen; $i++)
{
if($i>=$start && $i< ($start+$sublen))
{
if(ord(substr($string, $i, 1))>129)
{
$tmpstr.= substr($string, $i, 2);
}
else
{
$tmpstr.= substr($string, $i, 1);
}
}
if(ord(substr($string, $i, 1))>129) $i++;
}
if(strlen($tmpstr)< $strlen )
{
//$tmpstr.= "...";
}
return $tmpstr;
}
}
//$str = "abcd需要截取的字符串";
//echo cut_str($str, 8, 0, 'gb2312');
$out = cut_str($info,$start_words,$each_page_save_words_num ,'UTF-8');
//输出信息:完毕
echo $out.'<br/>';//分页处理
$show_page = 5;//显示5个页码
$url = "fy.php";//当前的文件名
//$last_page:上一页
//$next_page:下一页
//上一页
if($now_page>1)
{
$last_page = $now_page -1;
}
else
{
$last_page = 1;
}
//下一页
if($now_page<$count_page)
{
$next_page = $now_page +1;
}
else
{
$next_page = $count_page;
}
if($count_page<=$show_page)
{
$start = 1;
$end = $count_page;
}
else
{
if($now_page<=($show_page+1)/2)
{
$start = 1;
$end = $show_page;
}
else if($now_page>($count_page-($show_page+1)/2))
{
$start = $count_page - $show_page+1;
$end = $count_page;
}
else
{
$start = $now_page - ($show_page-1)/2;
$end = $now_page + ($show_page-1)/2;
}
}
$page = "<a href='".$url."?now_page=1'>首页</a> ";
$page .= "<a href='".$url."?now_page=".$last_page."'>上一页</a> ";
//echo $start.'<br/>';
//echo $end.'<br/>';
for($i=$start;$i<=$end;$i++)
{
if($i==$now_page)
{
$page .= "<a style=\"color:#ff0000;\" href='".$url."?now_page=".$i."'>".$i."</a> ";//当前页颜色变红
}
else
{
$page .= "<a href='".$url."?now_page=".$i."'>".$i."</a> ";
}
//echo $page.'<br/>';
}
$page .= "<a href='".$url."?now_page=".$next_page."'>下一页</a> ";
$page .= "<a href='".$url."?now_page=1".$count_page."'>尾页</a> ";
echo $page;
?>
while($myrow_1=mysql_fetch_array($query_1)) 这句话后面的内容应该用{ }包含起来,否者不会执行循环的。
另外,把function放到最外边吧。帮你修正下,你自己测试下。大致是这样的
<?php
function cut_str($string,$start = 0, $sublen , $code = 'UTF-8'){
//函数的代码放到最前面。
}if(isset($_GET["now_page"])){
$now_page = $_GET["now_page"];
$now_page = intval($now_page);
}
if($now_page==""||$now_page<1){
$now_page = 1;
}
$query_1=mysql_query("select * from tb_xxgk ",$conn);
while($myrow_1=mysql_fetch_array($query_1)) {
//后面的代码放到这里大括号里。
}
function cut_str($string,$start = 0, $sublen , $code = 'UTF-8'){
if($code == 'UTF-8'){
$pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";
preg_match_all($pa, $string, $t_string);
if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen));
return join('', array_slice($t_string[0], $start, $sublen));
}
else{
$start = $start*2;
$sublen = $sublen*2;
$strlen = strlen($string);
$tmpstr = '';
for($i=0; $i< $strlen; $i++){
if($i>=$start && $i< ($start+$sublen)){
if(ord(substr($string, $i, 1))>129){
$tmpstr.= substr($string, $i, 2);
}
else{
$tmpstr.= substr($string, $i, 1);
}
}
if(ord(substr($string, $i, 1))>129) $i++;
}
if(strlen($tmpstr)< $strlen){
}
return $tmpstr;
}
}
if(isset($_GET["now_page"])){
$now_page = $_GET["now_page"];
$now_page = intval($now_page);
}
if($now_page==""||$now_page<1){
$now_page = 1;
}
$info = "adsfaefadfeafadsfefasafi239asjf93asdiofjioaksdfj90asdjiojeioiojcaEIAZNIAEFNIASDFIEFNIASDFNAWEOFI912JKISDFEIANFIEFANIDFEIADIFENIADIFEsdfffffffffffasdfefef";//信息内容
$each_page_save_words_num = 30;//每$each_page_save_words_num个字换页
$count_words = mb_strlen($info,'UTF-8');//字符统计
$count_page = ceil($count_words/$each_page_save_words_num);//总页码
//开始字数:
$start_words = ($now_page-1)*$each_page_save_words_num;$out = cut_str($info,$start_words,$each_page_save_words_num ,'UTF-8');
//输出信息:完毕
echo $out.'<br/>';//分页处理
$show_page = 5;//显示5个页码
$url = "test.php";//当前的文件名if($now_page>1){
$last_page = $now_page -1;
}
else{
$last_page = 1;
}
//下一页
if($now_page<$count_page){
$next_page = $now_page +1;
}
else{
$next_page = $count_page;
}
if($count_page<=$show_page){
$start = 1;
$end = $count_page;
}
else{
if($now_page<=($show_page+1)/2){
$start = 1;
$end = $show_page;
}
else if($now_page>($count_page-($show_page+1)/2)){
$start = $count_page - $show_page+1;
$end = $count_page;
}
else{
$start = $now_page - ($show_page-1)/2;
$end = $now_page + ($show_page-1)/2;
}
}
$page = "<a href='".$url."?now_page=1'>首页</a> ";
$page .= "<a href='".$url."?now_page=".$last_page."'>上一页</a> ";
//echo $start.'<br/>';
//echo $end.'<br/>';
for($i=$start;$i<=$end;$i++){
if($i==$now_page){
$page .= "<a style=\"color:#ff0000;\" href='".$url."?now_page=".$i."'>".$i."</a> ";//当前页颜色变红
}
else{
$page .= "<a href='".$url."?now_page=".$i."'>".$i."</a> ";
}
}
$page .= "<a href='".$url."?now_page=".$next_page."'>下一页</a> ";
$page .= "<a href='".$url."?now_page=1".$count_page."'>尾页</a> ";
echo $page;
?>