PHP学会网 php培训网 PHP暑期培训 PHP寒假培训 PHP假期培训 » PHP中高级 » wap开发篇---大文章截取无乱码(utf-8)
本页主题: wap开发篇---大文章截取无乱码(utf-8) 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

游子云



该用户目前不在线
级别: 管理员
精华: 3
发帖: 246
威望: 205 点
金钱: 2066 PYMB
贡献值: 0 点
在线时间:38(小时)
注册时间:2005-10-27
最后登录:2008-08-19

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


顶端 Posted: 2005-11-14 00:42 | [楼 主]
游子云



该用户目前不在线
级别: 管理员
精华: 3
发帖: 246
威望: 205 点
金钱: 2066 PYMB
贡献值: 0 点
在线时间:38(小时)
注册时间:2005-10-27
最后登录:2008-08-19

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


[code]/***********************************************************
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= "


";
$this->tmpstr.= (iconv("gb2312","UTF-8","第"))."".$this->page."".(iconv("gb2312","UTF-8","页共")).$this->PageCount.(iconv("gb2312","UTF-8","页"))."  ";

if($this->page>1)
$this->tmpstr.= "url_str."&f_page=".($this->page-1)."">".(iconv("gb2312","UTF-8","上一页"))." ";
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.= "url_str."&f_page=".$i."">[".$i."] ";
}
else {
$this->tmpstr.= "url_str."&f_page=".$i."">".$i." ";
}
}

if($this->page<$this->PageCount)
$this->tmpstr.= " url_str."&f_page=".($this->page+1)."">".(iconv("gb2312","UTF-8","下一页"))."";
else
$this->tmpstr.= (iconv("gb2312","UTF-8","下一页"));

$this->tmpstr.= "
";
}
return $this->tmpstr;
}//end



}

?>

[/code]

[[i] Last edited by 游子云 on 2005-11-14 at 12:47 AM [/i]]
顶端 Posted: 2005-11-14 00:42 | 1 楼
游子云



该用户目前不在线
级别: 管理员
精华: 3
发帖: 246
威望: 205 点
金钱: 2066 PYMB
贡献值: 0 点
在线时间:38(小时)
注册时间:2005-10-27
最后登录:2008-08-19


[code]

实例化
$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;


[/code]
顶端 Posted: 2005-11-14 00:46 | 2 楼
游子云



该用户目前不在线
级别: 管理员
精华: 3
发帖: 246
威望: 205 点
金钱: 2066 PYMB
贡献值: 0 点
在线时间:38(小时)
注册时间:2005-10-27
最后登录:2008-08-19


打开extension=php_mbstring.dll
顶端 Posted: 2005-11-14 00:48 | 3 楼
phphp



该用户目前不在线
级别: 新手上路
精华: 0
发帖: 1
威望: 0 点
金钱: 0 PYMB
贡献值: 0 点
在线时间:0(小时)
注册时间:2005-11-14
最后登录:1970-01-01


恕小的不敬,折腾半天就截取不乱码的事
我还以为版主把智能断页,解析html的问题解决了

[[i] Last edited by phphp on 2005-11-14 at 01:27 PM [/i]]
顶端 Posted: 2005-11-14 13:25 | 4 楼
游子云



该用户目前不在线
级别: 管理员
精华: 3
发帖: 246
威望: 205 点
金钱: 2066 PYMB
贡献值: 0 点
在线时间:38(小时)
注册时间:2005-10-27
最后登录:2008-08-19


[quote]Originally posted by [i]phphp[/i] at 2005-11-14 01:25 PM:
恕小的不敬,折腾半天就截取不乱码的事
我还以为版主把智能断页,解析html的问题解决了

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

恕我不才,现在不在从事程序员的工作;实在不能实现的,我就去说服客户,我的就是WAP;我也很想做的更全全些;但是时间不充许;等我做好了,我在放出来
顶端 Posted: 2005-11-14 19:41 | 5 楼
PHP学会网 php培训网 PHP暑期培训 PHP寒假培训 PHP假期培训 » PHP中高级

现在时间:10-14 06:01 Copyright © 2006 phpwhy.com 版权所有
浙ICP备05060669号

点击这里给我发消息关于我们 - 合作联系