A-A+
PHP更新文章时同时更新对应的HTML页面
编辑文章时应该将其对应的Html静页面同时进行更新,下面来看一下“PHP更新文章时同时更新对应的Html页面”的思路,大致是这样的,执行的程序首先要将字段接受过来,这里有一个关键是有一个字段是保存Html的路径,接受过来之后,再将对应的模板打开,进行新内容的替换,重新生成Html。
下面是编辑时的执行程序:
<?php if($_SESSION["admin"]<>session_id()) { header("location:admin.php"); } require_once("../inc/conn.php"); $id=$_GET["id"]; if($_POST["Submit"]) { $title=$_POST["title"]; $typeid=$_POST["typ"]; $sql="select * from newstype where newstypeid=$typeid"; $rs=mysql_query($sql); $rows=mysql_fetch_assoc($rs); $type=$rows["newstype"]; $content=$_POST["d_content"]; $source=$_POST["source"]; $path=$_POST["path"]; $time=$_POST["time"]; $root=$_SERVER['DOCUMENT_ROOT']; $filepath="$root/newslist/$path"; if(file_exists($filepath)) { $moban="$root/moban/moban.html"; $fp=fopen($moban,"r"); $str=fread($fp,filesize($moban)); fclose($fp); $str=str_replace("{-type-}",$type,$str); $str=str_replace("-title-",$title,$str); $str=str_replace("-time-",$time,$str); $str=str_replace("-content-",$content,$str); $str=str_replace("-source-",$source,$str); $fp=fopen($filepath,"w"); fwrite($fp,$str); fclose($fp); } $sql="update newscontent set newstypeid=$typeid,newstitle= '$title',newssource='$source' where newsid=$id"; if(mysql_query($sql)) { ?> <h2 style="color:#FF0000" align="center">修改成功</h2> <h3 align="center"><a href="admin.php">返回</a></h3> <?php } else { ?> <h2 style="color:#009900" align="center">修改失败</h2> <h3 align="center"><a href="admin.php">返回</a></h3> <?php } die(); } ?>
其实只要想明白其中的原理了,也就不难理解了。刚开始的 if 语句不用管,是一个验证是否登陆的语句,如果没有admin的值,会跳转到 admin.php页面(上次发的源码里面没有这一句,这次加上了),require_once("../inc/conn.php");这句就是包含数据库连接的文件。$id=$_GET["id"];这个就是接受过来的新闻ID,一定要有这句,否则找不到要更新哪篇文章,下面的if语句就是当Submit接受的不为空的时候,将进行文章更新操作,数据库里面的更新好理解,只要有一条Updata语句即可,这里的关键在于中间的 if(file_exists($filepath)) 和下面执行的句子了,这里的意思是判断文章的路径是不是存在,如果存在的话就进行更新替换对应的html操作。进行替换这里依然用的是str_replace的函数。这些进行完以后,下面就有一个判断是否修改成功,很简单就不再阐述了。
这几天研究你的代码,读到”modifynews.php”卡住了,第103 – 111行实在是看不明白有什么作用。希望你能帮忙解答一下。万分感谢
$path=$rows[“newspath”];
$root=$_SERVER[‘DOCUMENT_ROOT’];
$filepath=”$root/newslist/$path”;
if(file_exists($filepath))
{
$fp=fopen($filepath,”r”);
$str=fread($fp,filesize($filepath));
$content=split(“”,$str);
}
smiling 回复 [2013-03-31 00:26 AM]
$path=$rows[“newspath”]; //读取数据库里静态页路径
$root=$_SERVER[‘DOCUMENT_ROOT’]; //当前运行脚本所在的文档根目录,这里主要为下面获取静态页保存文件路径做铺垫。
$filepath=”$root/newslist/$path”; //获取静态页完整路径
if(file_exists($filepath)) //判断静态文件是否存在,如果存在存在,则往下执行
{
$fp=fopen($filepath,”r”); // 以只读方式打开,将文件指针指向文件头。 $str=fread($fp,filesize($filepath)); // 读取静态页文件
$content=split(“”,$str); //将其赋值到变量 $content 中。
}
你的私密文章出现在首页,会不小心被百度收录的哦
我一直觉得代码要很细心的人才能学会的。
admin 回复:
做那一行都需要细心才能做好,谢谢来访!
现在都讲代码了呀 这块你应该很不错吧
admin 回复:
差得还很远,还要不断学习,谢谢来访。
博主很厉害啊,一般人看了代码都会头痛,我们得向您看齐呀!支持!!
admin 回复:
做得时间久了就顺手了,谢谢来访。