+ -
当前位置:首页 → 问答吧 → php 动态页面生成静态页面 函数(实用)

php 动态页面生成静态页面 函数(实用)

时间:2010-01-15

来源:互联网

function createhtm($fromurl,$filename,$id){//创建静态页面
    global $db;
   $content = file_get_contents( $fromurl);
   $handle = fopen ($filename,"w");
   if (!is_writable ($filename)){
       echo "<font color='#FF9900'>不能生成 :".$filename."因为文件不存在或不可写</font><br>";
    }
     if (!fwrite ($handle,$content)){
     echo "<font color='#FF0000'>生成文件".$filename."失败</font><br>";
     }
     fclose ($handle);
      //echo "<font color='#00CC00'>生成文件".$filename."成功</font><br>";
      if(file_exists($filename) && $id){
      $query = "update news set cn_htmurl='$filename' where id='$id' ";//把生成的静态地址写在数据库里
      $db->query($query);
      }
}

/*静态内容*/
function contenthtm($folder2,$phpfilename,$class22,$id,$cn_ipage,$en_ipage,$updatetime){ //获得动态网址和对应的静态页面名称
    //$phpfilename 默认文件夹名称 对应前台动态相应文件例如news.php
    //$folder2 所在文件夹名称 例如前台news文件夹
    //$class22 分类id
    //$id 文章id
    //$updatetime 时间
    global $webhtm,$weburl,$htmtype,$htmpre_e,$htmpagename,$m_now_time,$en_lang_ok,$cn_lang_ok,$db;
    if($webhtm!=0){
        if($updatetime!=""){
            $updatetime = date('Ymd',strtotime($updatetime));
         }
         else{
             $updatetime = date('Ymd',$m_now_time);
         }
         if($htmpagename==2){
             $folder=$db->get_one("select * from class_name where id='$class22'");
             $foldername=$folder[foldername];
          }
          $foldername2="../../".$folder2.'/'.date('Ym').'/';
          if (!file_exists($foldername2)) {
             if (!make_dir($foldername2)) {        
                 echo "创建年月文件夹失败";
                  }
                  }
          switch($htmpagename){
              case 0; $pagename=$phpfilename.$id; break;
              case 1; $pagename=$updatetime.$id; break;
              case 2; $pagename=$foldername.$id; break;
          }
          if($cn_lang_ok==1){
              if($cn_ipage){//长文章分页数
              for($i=1;$i<=$cn_ipage;$i++){
              $fromurl=$weburl.$folder2."/".$phpfilename.".php?id=".$id."&ipage=".$i;
              $filename=$foldername2.$pagename."_".$i.".".$htmtype;
              if($i==1){
                  createhtm($fromurl,$filename,$id);
              }
              else{
              createhtm($fromurl,$filename);
              }
              }    
              }
              else{
              $fromurl=$weburl.$folder2."/".$phpfilename.".php?id=".$id;
              $filename=$foldername2.$pagename.".".$htmtype;
            createhtm($fromurl,$filename,$id);
              }
          }
         }
    }
    
function make_dir($folder) {//创建文件夹
    $reval = false;
    if (!file_exists($folder)) {
      @umask(0);
      preg_match_all('/([^\/]*)\/?/i', $folder, $atmp);
      $base = ($atmp[0][0] == '/') ? '/' : '';
      foreach($atmp[1]AS $val) {
        if ('' != $val) {
          $base .= $val;

          if ('..' == $val || '.' == $val) {
            $base .= '/';

            continue;
          }
        } else {
          continue;
        }

        $base .= '/';

        if (!file_exists($base)) {
          if (@mkdir($base, 0777)) {
            @chmod($base, 0777);
            $reval = true;
          }
        }
      }
    } else {
      $reval = is_dir($folder);
    }
    clearstatcache();
    return $reval;
  }


主要的函数就是这些,我做的系统就是用这几个函数的,希望对需求的人 要帮助,有不好的地方请高手指教!!!

作者: yjxommm2005   发布时间: 2010-01-15

先表示感谢,你开发个系统多长时间?

作者: hina   发布时间: 2010-01-15

谢谢楼主分享

作者: shuangyinlz   发布时间: 2010-01-15

大哥函数倒是不错 遗憾的是参数没有说明啊!

作者: llliaowwwei   发布时间: 2010-01-18