手机版

PHP中静态html的批量生成(命令行下运行PHP)

时间:2021-11-08 来源:互联网 编辑:宝哥软件园 浏览:

众所周知,大部分网站的新闻资讯或商品信息都是静态页面。这样做的好处主要是为了:1、加快访问速度,避免过多的操作数据库;2、搜索引擎优化优化,便于搜索引擎收录。本示例围绕羧甲基淀粉钠系统的静态页面方案出发,展示批量生成静态超文本标记语言功能。注:本文程序只能在Windows操作系统操作系统的磁盘操作系统或Linux操作系统操作系统下执行服务器端编程语言(专业超文本预处理器的缩写)命令来运行。本示例主要有四个文件:config.inc.php(配置文件)、Db.class.php(数据库PDO类)、模型类php(PDO数据库操作类)、index.php(执行文件)config.inc.php复制代码代码如下:phpheader(' Content-type : text/html;charset=utf-8 ');date _ default _ time _ zone _ set(' PRC ');定义(' ROOT_PATH ',目录名(_ _ FILE _ _));//根目录定义(' DB_DSN ',' MySQL : host=localhostdbname=article ');//MySQL的PDO德细(' DB_USER ',' root ');//数据库用户名定义(' DB_PWD ',' 1715544 ');//数据库密码(请您根据实际情况自行设定)函数_ _自动加载($类名){ require _ once ROOT _ PATH ./包含/'。ucfirst($className).上课。PHP ';}?Db.class.php复制代码代码如下:php/连接数据库分贝类{静态公共函数getDB() {try {$pdo=新PDO(DB_DSN,DB_USER,DB _ PWD);$ PDO-setAttribute(PDO : attr _ PERSISTENT,true);//设置数据库连接为持久连接$ PDO-setAttribute(PDO : attr _ ERRMODE,PDO : ERRMODE _ EXCEPTION);//设置抛出错误$ PDO-setAttribute(PDO : attr _ ORACLE _ NULLS,true);//设置当字符串为空转换为结构化查询语言的空$ PDO-查询(' SET NAMES utf8 ');//设置数据库编码} catch (PDOException $e) {exit('数据库连接错误,错误信息:'.$ e-Getmessay());}返回$ pdo}}?Model.class.php复制代码代码如下:php/操作SQLclass模型{/** * SQL增删改操作,返回受影响的行数* @ param string $ SQL * @ return int */public function aud($ SQL){ try { $ PDO=db : getdb();$ row=$ PDO-exec($ SQL);} catch(PDOException $ e){ exit($ e-getMessage());}返回$ row}/** *返回全部数据,返回PDOStatement对象* @ param string $ SQL * @ return PDOStatement */public function getAll($ SQL){ try { $ PDO=db : getdb();$ result=$ PDO-query($ SQL);返回$ result } catch(PDOException $ e){ exit($ e-getMessage());}}}?index.php复制代码代码如下:服务器端编程语言(Professional Hypertext Preprocessor的缩写)需要一次./config。Inc . PHP ';$m=新模型();$ id=$ m-GetAll(' SELECT id FROM article ORder BY id ASC ');foreach($ id为$ RowIdaRR){ $ IDstr .=$rowIdArr['id'].',';}$idStr=rtrim($idStr,',');//所有文章的身份号集合$idArr=explode(',',$ IDstr);//分割成数组//下面的程序循环生成静态页面foreach($ idArr as $ article id){ $ re=$ m-GetAll(' SELECT id,title,date,author,source,content FROM article WHERE id=').$ article id);//$re为每篇文章的内容,注意:其类型为:PDOStatement $ article=array();//$文章为一个数组,保存每篇文章的title、date、author、content、source foreach($ re as $ r){ $ article=array(' title '=$ r[' title '],' date'=$r['date'],' author'=$r['author'],' source'=$r['source'],' content '=$ r[' content ']);}$articlePath=ROOT_PATH ./article ';//$articlePath为静态页面放置的目录if(!is _ dir($ article path))mkdir($ article path,0777);//检查目录是否存在,不存在则创建$fileName=ROOT_PATH ./article/' .$ article id . html ';//$fileName生成的静态文件名,格式:文章ID.html(主键身份不可能冲突)$articleTemPath=ROOT_PATH ./模板/文章。html ';//$articleTemPath文章模板路径$ article content=file _ get _ contents($ article tempath);//获取模板里面的内容//对模板里面设置的变量进行替换。

即比如:把模板里面的{title}替换成数据库里读取的标题,替换完毕赋值给变量$articleContent $ article content=getArticle(array _ keys($ article),$ article content,$ article);$resource=fopen($fileName,' w ');file_put_contents($fileName,$文章内容);//写入超文本标记语言文件}/*** getArticle($arr,$content,$article)对模板进行替换操作* @param数组$arr替换变量数组* @param字符串$内容模板内容* @param数组$项目每篇文章内容数组,格式:数组(' title'=xx,' date'=xx,' author'=xx,' source'=xx,' content '=xx);*/函数getArticle($arr,$content,$article) {//循环替换foreach($ arr as $ item){ $ content=str _ replace(' { ').$项目.} ',$article[$item],$ content);}返回$ content}?运行截图(窗口的磁盘操作系统为例)9500.163.com

跑步后截图:

它可以在大约2分钟内生成9000多个html。转载李的专栏。注明出处!

版权声明:PHP中静态html的批量生成(命令行下运行PHP)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。