请看: http://community.csdn.net/Expert/topic/4053/4053055.xml?temp=.863949

解决方案 »

  1.   

    自己解析HTML啦,最好是将可以分页的部分做个标志。
    比如“<!--可分页内容开始-->"“<!--可分页内容结束-->"
    这样的话,里面的东东就比较好处理了,因为现实中一般只是分内容,你要是想分布局什么的,那是不可能的。
      

  2.   

    另一问题呀:
    如果在搜索的时候显示如百度那样的页数呀。具体就是,比如点第 20页。
    就会显示第 10 — 29页这样。点 30页。就会显示 20 — 39 这样。
    在线等。多谢呀-----------------------------
    这个最简单了,你都是保留有当前页号的,用循环for($i=curPage-10;$i<curpage+10;$i++)生成链接不就OK啦
      

  3.   

    唉,到网上一搜全是ASP的,PHP的HTML格式的长文章分页,好象还没有强有力的函数实现
      

  4.   

    file -- 把整个文件读入一个数组中,计算这个数组就可以得到多少行了-----------------------
    这个方法好笨的,跟一下处理整个文件有啥效率上的区别?还不如将此次读写到的文件指针位置保存到数据库或一个文件,下次根据这个指针位置继续读就好了,这样分页才更有效率一些。
      

  5.   

    <php
    /*
      *  长文章分页  
      *
      */
         $content = '<P>&nbsp;&nbsp;&nbsp; 你希望自己的职业生涯能迎来一次新的飞跃;</P>
                <P>&nbsp;&nbsp;&nbsp; 你希望在不失去现有职位的同时冲刺更高的职业目标;</P>
                <P>&nbsp;&nbsp;&nbsp; 你希望在读书的同时实现其他人生目标;</P>
                <P>&nbsp;&nbsp;&nbsp; 于是你选择了和大多在职人士一样的道路;</P>
                <P>  你决定在职读研,将学习进行到底。</P>
                <P>  根据美国教育中心的统计,美国的研究生平均年龄为<SPAN 
                lang=EN-US>33岁。一半以上已经结婚,1/3有孩子。全日制学习对于他们是不可能的,因此有64%的硕士生和39%的博士生采取业余学习的方式完成学业。这种获得位的方式就相当于我们国内的在职研究生制度。</SPAN></P>
                <P>  对于大多数已经有了几年工作经验的人来说,除非你对目前的工作彻底失去信心,否则人们还是更愿意利用业余时间完成研究生学位课程。尤其对于那些希望在本公司或本行业进一步取得发展的人来说,这种业余学习更为适合。因为,这样他们就可以在提高文凭资历的同时保持职业上的联系,不会产生与社会脱节的不良心理感觉。</P>
                <P>  不过想要在业余时间完成学业的人需要特别注意的是,事先取得家人和爱人的支持是业余学习者获得成功至关重要的条件。想象一下你在以后的几年中要利用大部分的业余时间埋头读书,每天只能睡<SPAN 
                lang=EN-US>6个小时。你可能遭遇上司的刁难,他会认为你的学习对工作没有帮助,或者“影响”了工作而对你横加责难。你还可能为此遭遇被炒,失去所有收入来源……所有这些困境都需要你和你的家人共同承受。如果你已经决定了要接受这样的挑战,那么在职读研的确是你增加自身职业砝码的好途径。除此之外,你还需要为自己挑选一所信誉良好的学校和一门适合的专业。这样,你提升自我的目的才有希望最终实现。</SPAN></P>
                <P>  <B>跳过<SPAN lang=EN-US>5大招生陷阱</SPAN></B></P>
                <P>  在大城市打开任何一张销量可观的报纸,你就能在广告栏里找到多如牛毛的在职研究生招生信息。放眼望去,似乎所有的名校都在招生办班。看到这些诱人的名校招牌和新颖的学科名称,你是不是已经跃跃欲试了?在你将不匪的学费交到招生单位手中之前,你是否已经意识到,你有可能正站在无数办学陷阱的边缘。你投入的金钱和精力有可能血本无归<SPAN 
                lang=EN-US>——你可能根本申请不到那梦寐以求的学位、你甚至没有参加国家统一考试的资格、你可能压根儿就没有机会聆听到你所渴望的名校教授的亲身授课,你还有更多可能被名目繁杂的收费项目深深套牢……</SPAN></P>
                <P>  <B>陷阱<SPAN lang=EN-US>1 无效证书的陷阱</SPAN></B></P>
                <P>  通常表现:</P>
                <P>  你在报纸上发现了<SPAN 
                lang=EN-US>“某某大学管理学院”、“某某大学计算机学院”的招生信息。实地考察之后你发现,这家招生单位的办公地点确实存在于该校校园内。于是你相信了这次招生的合法性。</SPAN></P>
                <P>  出现问题:</P>
                <P>  学习结束后,你发现手中的结业证书是那个所谓的某某大学管理学院出据的,甚至连该校校方都不予承认。</P>
                <P>  问题内幕:</P>
                <P>  钻国家办学监控不严的空子、校方只收钱不管理。</P>
                <P>  这个所谓的<SPAN 
                lang=EN-US>“学院”根本不具备一级法人资格,它的炮制者可能只是该校某系几位创收心切的员工和一些胆大妄为的社会人员。校方对于这样的“草台班子”既没有监控权,也抓之不及。很多学校甚至采取放任态度——毕竟雁过可以留毛,而且即使这些草台班子出了问题,校方也不用承担任何法律责任。于是你在一番辛苦努力后只得到一张昂贵的废纸。</SPAN></P>
                <P>  预防策略:</P>
                <P>  <SPAN 
                lang=EN-US>*到当地省市级教委的学位办公室查验该研究生班是否在这里办理了备案登记。没有备案的当然是骗你没商量的草台班子。</SPAN></P>
                <P>  <SPAN 
                lang=EN-US>*鉴别图章的效力。比如南开大学金融学在职研究生班结业证书上盖有南开大学四字印章(一级法人印章)、现任校长手章和证书编号的证书才是“南开大学”所认可的。</SPAN></P>
                <P>  <B>陷阱<SPAN lang=EN-US>2 学科名称陷阱</SPAN></B></P>
                <P>  通常表现:</P>
                <P>  <SPAN 
                lang=EN-US>“广告”、“策划”、“文化市场学”这些听起来既实用又时髦的学科名称让你跃跃欲试。成为市场上紧俏的广告、策划、人力资源方面专业高级人才的希望眼看就能实现了。你怎能忍心错过这样的好机会。出现问题:</SPAN></P>
                <P>  在读了很多被业内人士称为<SPAN 
                lang=EN-US>“花拳绣腿”的课程之后,你发现这些课程对于你通过国家统一专业知识考试的帮助实在有限。因为国家学科设置里根本没有广告这一类条目。你所要面临的还是传统的文学类知识考试。除非你根本不打算获得学位,否则这样的课程设置可要让你走不少冤枉路的。问题内幕:</SPAN></P>
                <P>  为了吸引生源,招生单位刻意对个别对大众有吸引力的课程夸大宣传,以偏盖全。结果是要么你根本不会拿到那个你希望的所谓<SPAN 
                lang=EN-US>“广告学”“策划学”的硕士学位,要么你需要通过国家考试的时候会感到困难重重。因为你所上课程与统考内容很不匹配。</SPAN></P>
                <P>  预防办法:</P>
                <P>  事先查看研究生班详细的课程、课时设置。对照国家有关大学学科设置和学位授予的有关规定考察该课程设置的含金量。</P>
                <P>  <B>陷阱<SPAN lang=EN-US>3 乱收费陷阱</SPAN></B></P>
                <P>  通常表现:</P>
                <P>  在报名之初,你只被告之一个大概的学费数额,比如<SPAN 
                lang=EN-US>13000元、21000元等。但是你开始就读之后才发现,你的花费远不仅限于此。出现问题:</SPAN></P>
                <P>  学生除了要支付报名费、学费、教材费、论文指导费和答辩费这些正常收费外,还被要求交纳诸如考试费、补考费、出题阅卷费、结业证成本费、学位指标费等一系列<SPAN 
                lang=EN-US>“苛捐杂费”。由于已经身在其中,你当然无法抗拒这些的收费项目滋扰。但是这种被人套牢之后割肉的感觉实在是很不舒服。</SPAN></P>
                <P>  问题内幕:</P>
                <P>  巧立名目,任意收费。</P>
                <P>  预防方法:事先咨询清楚所有收费项目,并要求招生单位列出收费细则。</P>
                <P>  <B>陷阱<SPAN lang=EN-US>4 师资不足陷阱</SPAN></B></P>
                <P>  通常表现:</P>
                <P>  你只知道这个研究生班的课程设置,却不知道给你授课的人到底是谁。于是在很多时候,来给在职研究生上课的非但不是该校的教授、副教授,甚至不是该校讲师,而是一些在校就读的研究生。还有一些地方竟然将所谓的资深人士请上讲台。</P>
                <P>  出现问题:</P>
                <P>  学生们听着那些似是而非的糊涂讲解,大呼上当。</P>
                <P>  问题内幕:</P>
                <P>  招生单位没有足够的师资力量,或者是学校开班太多,师资不够调配。他们于是聘用大量在读研究生、外校老师、企业管理者到课堂上滥竽充数。预防方法:</P>
                <P>  报名时不仅要关心课程的设置情况,对于每一门课授课教师的资质也要多加留心。比如,你可以要求验看办班学校在教委学位办备案的文件。正规的文件里都会有详细的课程设置、课时安排、授课教资质、任课教授签字等内容的详细记载。比如,南开大学在北京开办的文学与传播专业专业研究生班<SPAN 
                lang=EN-US>14门课程的授课教师中12位为南开文学系教授,两位为副教授。这样的师资配置自然能让学生对办学质量吃上定心丸。</SPAN></P>
                <P>  <B>陷阱<SPAN lang=EN-US>5 申请学位陷阱</SPAN></B></P>
                <P>  通常表现:</P>
                <P>  办班单位无限制地招收学生,一个班<SPAN 
                lang=EN-US>200人的情况也不罕见。可是到了申请学位时却发现困难重重。</SPAN></P>
                <P>  出现问题:</P>
                <P>  如果班里<SPAN 
                lang=EN-US>200人全都通过了国家统考,也不可能人人按期申请到学位。毕竟硕士生导师的数量和精力有限,如果过多地指导学生,那么必然导致学生论文质量下降。学生最终无法通过答辩也就在情理之中了。——另外还可能导致大批学生排队多年等待申请学位的情况。为了让自己能尽早拿到学位,实际情况恐怕只能是出价高者先得学位了!</SPAN></P>
                <P>  问题内幕:</P>
                <P>  每所大学、每个专业的师资力量<SPAN 
                lang=EN-US>(有多少名硕士生导师、博士生导师)毕竟有限,无限制招生和教学力量不足必然导致这一矛盾的产生。</SPAN></P>
                <P>  预防方法:</P>
                <P>  设法搞清该专业每年授予硕士学位的人数额度,教学能力、师资水平、再对比在职研究生班实际招生情况,你就能够心中有数了。三五个人抢一馒头的事儿,您就别干了。<SPAN 
                lang=EN-US>(侯琨)</SPAN></P><SPAN class=smText><BR><BR>编辑人:冬冬 编辑于: 
                2003-12月-03 09:22</SPAN>';
      

  6.   

    $content = preg_replace("/</P>/", "#cizi#", $content);
    $content = preg_replace("/<P>/", "", $content);$content = strip_tags($content);
    $content = preg_replace("/#cizi#/", "<br>", $content);     if ($clength = mystrlen($content))
         {
             if (empty($_GET[offset]))
             {
                $_GET[offset] = 1;
             }
            $i = $_GET[offset];
         
            $pagelength    = 600;    //每页字数
            $pagecount    = (int)($clength/$pagelength) + 1;    //页数              if ($i > $pagecount)
            {
                echo '没有这一页';
                exit(0);
            }
            
            echo '这篇文章一共有'.$pagecount.'页';        echo '<br>第'.$i.'页<br><hr>';
            $start = ($i - 1) * $pagelength;
            echo csubstr($content, $start, $pagelength);        
            
            if ($i < $pagecount && $i == 1)
                $link = '<font color="#FF0000">[<a href="cizi.php?offset='.($i+1).'">下一页</a>]</font>';
            else if ($i < $pagecount && $i != 1)
                $link = '<font color="#FF0000">[<a href="cizi.php?offset='.($i-1).'">上一页</a>]</font>&nbsp;<font color="#FF0000">[<a href="cizi.php?offset='.($i+1).'">下一页</a>]</font>';
            else if ($i == $pagecount && $pagecount != 1)
                $link = '<font color="#FF0000">[<a href="cizi.php?offset='.($i-1).'">上一页</a>]</font>';
            else if ($i == $pagecount && $pagecount == 1)
                $link = '<font color="#FF0000">[只有一页]</font>';
            
            echo $link;     
         }
    Function csubstr($str,$start,$len) 

        $strlen=strlen($str); 
        $clen=0; 
        for($i=0;$i<$strlen;$i++,$clen++) 
        { 
            if ($clen>=$start+$len) 
                break;         if(ord(substr($str,$i,1))>0xa0) 
            { 
                if ($clen>=$start) 
                    $tmpstr.=substr($str,$i,2); 
                $i++; 
            } 
            else 
            {             if ($clen>=$start) 
                    $tmpstr.=substr($str,$i,1); 
            } 
        }     return $tmpstr; 
    } /*计算字符串长度,一个汉字当作1个计算,一个字母也当作一个计算。
     *返回字符串长度
     */
    function mystrlen($str)
    {
        $strlen=strlen($str); 
        $len = $strlen;    for($i=0;$i<$strlen;$i++) 
        { 
            if(ord(substr($str,$i,1))>0xa0) 
            { 
                $i++; 
                $len--;            
            }         
            else 
            { 
                    
                if ($clen>=$start) 
                    $tmpstr.=substr($str,$i,1); 
            } 
        } 
        return $len;
    }?>