rt
例如新闻,
1 怎么样实现内分页.
2 我希望点击内容里面的图片能到达下一页,最后一页图片没有超链接.

解决方案 »

  1.   


    //1生成静态文件目录
    //2读取新闻数据至变量$info//内容切割,这里假设按 hr 对分页内容进行切割
    $info_arr = preg_split("/<hr[^>]*>/i",$info);foreach($info_arr as $key=>$val):
    $data["innerpage"] = $this->get_page_link($id,sizeof($info_arr),$key);
    $this->log( $data["innerpage"]);
    if($key == 0) {$new_dest_path = $dest_path;}
    else { 
    $new_dest_path_arr = pathinfo($new_dest_path);
    $dest_key = $key +1;
    $id_tail =  str_pad($id, 9, "0", STR_PAD_LEFT);
    $id_tail = substr($id_tail,6,3);  

    $new_dest_path = $new_dest_path_arr["dirname"]."/".$id_tail."_".$dest_key.".html";
    }
    $next_page_url = $this->get_next_page_url($id,sizeof($info_arr),$key);


    $data["row"]->news_info = addpic_url($val,$next_page_url);

        $cont =  $this->load->view("news/info",$data,true);
        $this->load->helper("file");
        write_file($new_dest_path, $cont);
    /**
     * * 得到内页的分页号
     *
     * @param unknown_type $id
     * @param unknown_type $size
     * @param unknown_type $cur
     * @return unknown
     */
    function get_page_link($id,$size,$cur)
    {
    if($cur != 0 ){
    $page_info = "<div  class = 'innerpage'><a href = '".CS_get_newsurl_byid($id,0)."'>首页</a>";
    }else {
      $page_info = "<div  class = 'innerpage'><span>首页</span>";
    }

         for($key = 0;$key < $size;$key++) {
          $dest_key = $key +1;
         if($cur == $key) 
         {$page_info .= "<span class = 'curpage'>$dest_key</span>"; continue;}
             if($dest_key == 1)  $page_info  .= "<a href = '".CS_get_newsurl_byid($id,0)."'>1</a>";
             else $page_info .= "<a href = '".CS_get_newsurl_byid($id,$key+1)."'>$dest_key</a>";
        }
        
        if($cur != $size-1 ){
     $page_info  .= "<a href = '".CS_get_newsurl_byid($id,$size)."'>末页</a></div>";
        }else{
           $page_info .= "<span>末页</span></div>";
        }
    return $page_info;
    }//得到下一页的地址
    function get_next_page_url($id,$size,$cur)
    {
    if($cur == $size-1 )
    {
    $next_page_url = "";
    }
    else {
    $next_page_url = CS_get_newsurl_byid($id,$cur+2);
    }
    return $next_page_url;

    }
    /**
     * 给新闻中的图片添加相应的链接
     * */
    function addpic_url($txt,$url)
    {
    if(!$url) return $txt;
      $str = preg_replace("/(<img[^>]*>)/i","<a href = '$url'>$1</a>",$txt);
        return $str;
    }
      

  2.   

    一楼,请问,为什么调用函数,还要用一个this->
    可以麻烦你单独写个可用的demo 么?
      

  3.   


     sorry 我用的ci 的框架,
    你看的时候当这个$this-> 不存在,相当于函数的调用就好了。写demo ,不会吧,我只是提供一个解决问题的思路,自己手动实施一次效果才会好哟。