设为首页 收藏本站
查看: 520|回复: 0

[经验分享] PHP生成静态页面的类

[复制链接]

尚未签到

发表于 2017-4-3 11:09:11 | 显示全部楼层 |阅读模式
  前几天说要做一个PHP的生成静态页面的类 后来搜索下资料发现 已经有前辈总结过了 这里就偷懒下 借鉴他了!
  下面就是! 写的不错 借鉴下这个是类的代码
  :
  class makeStaticHtml{//=================================// 定义变量     此处可更改//=================================var $saveDir = "web_articles" ; //保存静态页面的文件夹var $saveBegin = "art" ; // 生成静态页面以什么字符开头,本处为art_如:art_1200.htmlvar $saveTemplate = "tpl.html" ; //静态页面模板var $saveFlag = "a" ; //生成文件路径格式a为:web_articles/2008/09/10/art_130.html,b为web_articles/20080910/art_130.htmlvar $saveArray = array(0); //存储所需要的变量//=================================// 文件夹是否存在,不存在建立//=================================private function chkDir( $dirName = '' ){if(!is_dir($dirName)){@mkdir($dirName) ;}}//=================================// 按当前日期找到文件,如果没有创建//=================================private function chkArticleDir(){$saveDir = $this->saveDir;$saveFlag = $this->saveFlag ;//主目录$this->chkDir($saveDir) ;//=====================//格式一:web_articles/2008/09/10/art_130.htmlif("a" == $saveFlag){//年文件夹$this->chkDir($saveDir."/".date("Y") ) ;//月文件夹$this->chkDir($saveDir."/".date("Y")."/".date("m") ) ;//日文件夹$this->chkDir($saveDir."/".date("Y")."/".date("m")."/".date("d") ) ;//返回路径return $saveDir."/".date("Y")."/".date("m")."/".date("d")."/" ;}//======================// 格式二:web_articles/20080910/art_130.htmlif("b" == $saveFlag){$this->chkDir($saveDir."/".date("Ymd") ) ;return $saveDir."/".date("Ymd")."/" ;}}//=================================// 读取模板文件//=================================private function readTemplate(){$saveTemplate = $this->saveTemplate;//以只读方式读取模板文件$fp = @fopen($saveTemplate,"r") ;//读取内容$content = @fread($fp,filesize($saveTemplate)) ;//关闭@fclose($fp);//返回读取数据return $content;}//=================================// 添加模板参数变量//=================================public function addParm($parmName = '',$parmValue = '' ){if($parmName != "" && $parmValue != ""){//向数组添加数据array_push($this->saveArray,array($parmName,$parmValue)) ;}}//=================================// 生成静态页面函数//=================================public function makeHtml($artid = ''){//=======================//先得到模板的内容并替换//=======================$content = $this->readTemplate();//参数长度$size = count($this->saveArray);//按数组长度计算,替换各参数及值for($i=1;$i<$size;$i++){$content = str_replace ("{".$this->saveArray[$i][0]."}",$this->saveArray[$i][1],$content) ;}//如果不存在if("" == $content) return "no_template";//=======================//创建文件//=======================//文件名称$htmlPageName = $this->chkArticleDir().$this->saveBegin."_".$artid.".html" ;//创建$handle = @fopen($htmlPageName,"w") ;//不可写if(!fwrite($handle,$content)) return "make_error" ;//关闭@fclose($handle) ;//返回静态页面路径return $htmlPageName;}//=================================// 指定年月日的文件是否存在// 参数:年,月,日,文章ID// 年(0000),月(00),日(00)//=================================public function chkHtmlPage($y='',$m='',$d='',$artid = ''){//文件位置$delPath = "";//得到静态页面保存格式$saveFlag = $this->saveFlag ;//如果是年月日文件分级格式if("a" == $saveFlag){$delPath = $this->saveDir."/".$y."/".$m."/".$d."/".$this->saveBegin."_".$artid.".html";}//第二种格式else if("b" == $saveFlag){$delPath = $this->saveDir."/".$y.$m.$d."/".$this->saveBegin."_".$artid.".html";}//文件不存在if(!file_exists($delPath)){return "no";}//文件存在else{return $delPath;}}//=================================// 删除指定ID的文章静态页面,删除不成功返回false// 删除页面时给出参数,年,月,日,文章ID// 如:delHtml("2008","09","25",100);//=================================public function delHtml($y='',$m='',$d='',$artid = ''){$chkResult = $this->chkHtmlPage($y,$m,$d,$artid);//如果文件存在if("no" != $chkResult){//删除文件if(!@unlink($chkResult)){//删除失败return "del_error" ;}else{//删除成功return "del_ok" ;}}//文件不存在else{return "no_found";}}}
  下面是例子代码:
  <?php//===================================// php实现生成静态页面的类的应用// 程序编写:程序人生 www.vc66.cn//===================================include "./makeHtmlPage.class.php";//==================// 类实例化//==================$mk = new makeStaticHtml();//==================//给出模板名及值//==================$mk->addParm("title","这是网页标题");$mk->addParm("art_title","这是文章标题") ;$mk->addParm("art_content","这是文章内容.") ;$mk->addParm("art_time","2008-09-25 14:12:16") ;//==================// 生成静态页面.// 参数:文章ID,写入数据库后的// 返回结果//      no_template :模板不存在//      make_error :生成失败//==================$temp_url = $mk->makeHtml(8137510);//模拟文章ID号为813751echo "生成成功,文件名称为 : ".$temp_url."<br/><br/>";//==================// 文件是否存在 参数:年,月,日,文章ID号// 格式:年(0000),月(00),日(00)// 不存在返回no,存在返回路径//==================$ifHave = $mk->chkHtmlPage("2008","09","25",8137510);//模拟文章ID号为813751echo "文件是否存在:".$ifHave."<br/><br/>";//==================// 删除静态页面 参数:年,月,日,文章ID号// 格式:年(0000),月(00),日(00)// 返回结果://        del_error:删除失败//        del_ok :删除成功//        no_found :没找到//==================$delR = $mk->delHtml("2008","09","25",8137510);//模拟文章ID号为813751echo "删除指定页面结果:".$delR."<br/><br/>";?>
  其中的原理是相同的 。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-359505-1-1.html 上篇帖子: php与mongoDB的条件查询 下篇帖子: 介绍一个免费的php空间
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表