分享

wap开发篇---大文章截取无乱码(utf-8)

 Ralf_Jones 2006-12-18
标题: wap开发篇---大文章截取无乱码(utf-8) [打印本页]

作者: 游子云     时间: 2005-11-14 12:42 AM    标题: wap开发篇---大文章截取无乱码(utf-8)

CODE:  [Copy to clipboard]
<?
/***********************************************************
    Copyright (C), 2005,
    Author:                                游子云
    Description:               
    Version:                        1.0
        Date:                                2005-11-13
************************************************************/
  class strPage
{
   var  $PageWordNum;
   var  $CLength;
   var   $PageLength;
   var   $content;
   var   $clen;
   var   $start;
   var   $PageWordNum;
   var   $content;
   var   $stringLen;
   var   $tmpstr;
   var   $page;
   var   $url_str;
   var   $PageCount;
   function SubstrGB($content,$start,$PageWordNum)
                {
           $this->start=$start;
                $this->content=strip_tags($content);
                $this->PageWordNum=$PageWordNum;
                $this->stringLen=mb_strlen($this->content);
                $this->clen=0;
                for($i=0;$i<$this->stringLen;$i++,$this->clen++)
                {
                        if ($this->clen>=$this->start+$this->PageWordNum)
                        break;
                        if(ord(mb_substr($this->content,$i,1))>0xa0)
                        {
                                if ($this->clen>= $this->start)
                                $this->tmpstr.=mb_substr($this->content,$i,2);
                                $i++;
                        }
                        else
                        {
                                if ($this->clen>= $this->start)
                                $this->tmpstr.=mb_substr($this->content,$i,1);
                        }
                        }
                return $this->tmpstr;
        }

        function ff_page($page,$url_str)
        {       
                $this->page=$page;
                $this->url_str=$url_str;
                $this->PageLength  = $this->PageWordNum*2;  //每页字数         
                $this->PageCount  =  ceil(($this->stringLen/$this->PageWordNum));  //计算页数       
        //--最后一页
                if($this->PageCount>1)
                {
                        $this->tmpstr= "<br/><br/><br/><center>";
                        $this->tmpstr.= (iconv("gb2312","UTF-8","第"))."<font color=‘ff0000‘>".$this->page."</font>".(iconv("gb2312","UTF-8","页共")).$this->PageCount.(iconv("gb2312","UTF-8","页"))."   ";

                        if($this->page>1)
                                $this->tmpstr.= "<a href=\"".$PHP_SELF."?".$this->url_str."&f_page=".($this->page-1)."\">".(iconv("gb2312","UTF-8","上一页"))."</a> ";
                        else
                                $this->tmpstr.= iconv("gb2312","UTF-8","上一页");        
                   if ((intval($this->page/10))<(intval($this->PageCount/10)))
                   {
                         $pg=(ceil($this->page/10))*10;
                         $i=(ceil($this->page/10)-1)*10+1;
                   }
                   elseif((intval($this->page/10))==(intval($this->PageCount/10)))
                   {           
                        $i=intval($this->PageCount/10)*10+1;      
                        $pg=($this->PageCount-(intval($this->PageCount/10))*10)+(intval($this->PageCount/10))*10;   
                   }
                   else{
                         $pg=10;
                         $i=1;
                   }
                  
                        for($i;$i<=$pg;$i++)
                        {         
                           if ($i==$this->page) {
                                $this->tmpstr.= "<a href=\"".$PHP_SELF."?".$this->url_str."&f_page=".$i."\">[".$i."]</a> ";
                           }
                           else {
                                 $this->tmpstr.= "<a href=\"".$PHP_SELF."?".$this->url_str."&f_page=".$i."\">".$i."</a> ";
                           }
                        }
                       
                        if($this->page<$this->PageCount)
                                $this->tmpstr.= " <a href=\"".$PHP_SELF."?".$this->url_str."&f_page=".($this->page+1)."\">".(iconv("gb2312","UTF-8","下一页"))."</a>";
                        else
                                $this->tmpstr.= (iconv("gb2312","UTF-8","下一页"));
                       
                        $this->tmpstr.= "</center>";
                   }       
                return $this->tmpstr;
        }//end

       

}

?>
[ Last edited by 游子云 on 2005-11-14 at 12:47 AM ]
作者: 游子云     时间: 2005-11-14 12:46 AM
CODE:  [Copy to clipboard]
实例化
$comment=""//你要输出的文件
if (isset($_GET[‘f_page‘]))
{
        $f_page= intval($_GET[‘f_page‘]);
}
else
{
        $f_page=1;               
}
$PageWordNum=200;
$str_page=new strPage();
$scomment= $str_page->SubstrGB($comment,($f_page-1)*$PageWordNum,$PageWordNum);
//echo $scomment;
echo (iconv("gb2312","UTF-8",$scomment));
$spage=$str_page->ff_page($f_page,$url_str);
echo $spage;

作者: 游子云     时间: 2005-11-14 12:48 AM
打开extension=php_mbstring.dll
作者: phphp     时间: 2005-11-14 01:25 PM
恕小的不敬,折腾半天就截取不乱码的事
我还以为版主把智能断页,解析html的问题解决了

[ Last edited by phphp on 2005-11-14 at 01:27 PM ]

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多