一个简单的新闻发布CMS制作

数据库设计

先设计一个简单的数据库,title为新闻标题,content为新闻内容,path为生成的html文件的路径。

create table news      
(
	news_id bigint(20) unsigned not null auto_increment primary key,
    title text not null,
    content text not null,
    path text not null
)DEFAULT CHARSET=utf8;
表单设计
<form method="post" action="add.php"> //提交至 add.php 
新闻标题:<input type="text" name="title" size="20"><br> 
新闻内容:<textarea name="content" cols="10" rows="25"></textarea><br> 
<input type="submit" name="提交"> 
</form>
生成静态新闻网页文件

建立一个 HTML 的模板,另存为model.html,和 add.php可以在同一目录下。

模板的源代码如下:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<html> 
<body> 
此新闻的标题:{title} 
此新闻的内容:{content} 
</body> 
</html>

接下来,用PHP实现从数据库获取由表单提交的新闻数据,然后替换HTML模板,生成静态的新闻的网页HTML文件。具体代码如下:

conn.php

<?php  
    //连接到本地MySQL数据库  
    $myconn=mysql_connect("localhost","root","");  
    //选择info为操作对象数据库  
    mysql_select_db("test",$myconn);  
?>

cms.php

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<?php  
    //连接到本地MySQL数据库  
    require("conn.php"); 
    $strSql="select * from news";  
    //用mysql_query函数从user表里读取数据  
    $result=mysql_query($strSql,$myconn);  
    while($row=mysql_fetch_array($result))//通过循环读取数据内容  
    {  
?>  

<?php 
    echo $row["title"];
    $title = $row["title"];
	$content = $row["content"];
	$path = $row["news_id"].'.html';//以当前操作的文件的id作为后面要生成的HTML文件的名称
	$fp = fopen("model.html","r");//以只读方式打开模版
	$str = fread($fp,filesize("model.html"));//将模版页面内容读入字符串$str中
	$str = str_replace("{title}",$title,$str);
	$str = str_replace("{content}",$content,$str);
	fclose($fp);//替换模版中需要替换的内容,完成后关闭即可
	$handle = fopen($path,"w");//打开将要生成的文件
	fwrite($handle,$str);//将替换后的模版内容写入新页面中,即生成新的HTML页面
	fclose($handle);//关闭
?> 

<?php  
    }  
    //关闭对数据库的连接  
    mysql_close($myconn);  
?>

{ }大括号内的内容即是要被替换的内容,整个静态模板的设计可以根据自己的思路,但{ }内被替换的内容必须包含在内,如上面的{title},{content};咔咔~简单地说,设计好一个很好看的新闻模板后,把要被替换的如{title},{content}等标记放到需要的地方就可以了。

总结一下以上的做法:先设计好新闻模板,把需要被替换的内容用{ }放到模板中相应的位置,然后设计表单,再是最后的表单处理程序,把从表单中获取的变量替换模板中相应的内容即可,这样每次都会生成不同的HTML;如果需要修改HTML的内容也是一样的,获得修改后的表单内容后,先用 update 语句更新数据库,再重新替换一下模板中的内容即可;删除的话,先delete表中要删除的内容,再用unlink($path) 来删除HTML的物理文件即可。

转载于:https://my.oschina.net/kisscucci/blog/14453

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值