A-A+

PHP更新文章时同时更新对应的HTML页面

2012年03月20日 PHP技术文章 评论 5 条 阅读 190 views 次

编辑文章时应该将其对应的Html静页面同时进行更新,下面来看一下“PHP更新文章时同时更新对应的Html页面”的思路,大致是这样的,执行的程序首先要将字段接受过来,这里有一个关键是有一个字段是保存Html的路径,接受过来之后,再将对应的模板打开,进行新内容的替换,重新生成Html。

下面是编辑时的执行程序:

<?php   
 if($_SESSION&#91;"admin"&#93;<>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的函数。这些进行完以后,下面就有一个判断是否修改成功,很简单就不再阐述了。

标签:

5 条留言  访客:5 条  博主:0 条

  1. cyssang

    这几天研究你的代码,读到”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 中。
    }

  2. 爱撸小杰

    你的私密文章出现在首页,会不小心被百度收录的哦

  3. CAD2010下载

    我一直觉得代码要很细心的人才能学会的。
    admin 回复:
    做那一行都需要细心才能做好,谢谢来访!

  4. Google优化

    现在都讲代码了呀 这块你应该很不错吧
    admin 回复:
    差得还很远,还要不断学习,谢谢来访。

  5. 抽烟机机什么牌子好

    博主很厉害啊,一般人看了代码都会头痛,我们得向您看齐呀!支持!!
    admin 回复:
    做得时间久了就顺手了,谢谢来访。

给我留言