用动态网页技术PHP打造个人网站全攻略

  这里和大家交流一下用动态网页技术PHP来架设个人网站的经验。不妥之处,敬请指正!

  一 编辑调试环境

  win98本地编辑调试,爽不爽?先下一个Omnihttpd Proffesinal V2.06 ,装上就有PHP4beta3可以用了。如果你较懂HTML,推荐用EditPlus,相当好哦!否则只好用DreamWeaver先了。还要连数据库?幸好MySQL还有For WIN32的版本。

  二 先来一个计数器

  自己的计数器总比外来的好,敝帚自珍嘛!时下介绍的计数器源代码总是那种刷新一下就长,不免有些自欺欺人,呵呵。不过我们还是先分析一下它的工作原理吧,下面是一个简单计数器的示例:

  <php $countfile="count.txt";
  if(file_exists($countfile))
  { $fp=fopen($countfile,"r+");
  $count=fgets($fp,5); $count+=1; rewind($fp);
  fputs($fp,$count,5);
  fclose($fp);
  }
  else
  {
  $fp=fopen($countfile,"w"); 
  $count="1";
  fputs($fp,$count,5); 
  fclose($fp);
  }; 
  ?> 

  这个计数器有个外号,叫一刷就长^_^。那么,怎么才能使计数器更真实一点呢?PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。一进页面,先检验SESSION中COUNT是否存在并等于你想要的值,不等于则使等于先,然后调用计数过程,会话结束后,就可以对COUNT说:ByeBye了您呐!

  但是如果不是PHP4又该怎么办?不知道你还记得cookie否?我们可以假设某人在15分钟以内(或别的时间段内)对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。比较一下,若差别大于十五分钟则计数,否则将时间刷新。(你不会连cookie怎么用都不知道吧?呵呵,推荐一本书《PHP核心编程》,清华版的,查函数还够用,每个函数都有使用示例:-D)

  不过,刚才的计数器毫无美观可言,估计你是肯定不满意了,换个图形的吧。做一套0.jpg,1.jpg……9.jpg。刚才不是读入一个字串吗?先查查串长,输入你期望的长度(如5)减去串长(去掉空格后的)个零,然后从头一个一个截数字(其实还是字符),与“.jpg”组合后输出,图形计数器不就出来了吗?

  好了,一个个人用的计数器就已经比较完美了.

  三 首页新闻发布,让你更新更轻松(上)

  --------每次在首页中增加一条消息,加两句话,就得整个页面都上传一遍,真是不值!于是象蓝风这种懒汉就想了一个一劳永逸的办法,真正的动态实时,远程管理编辑,自动维护功能。也可以用来做虚拟社区的公告板。(如果改吧改吧,就可以把你的新闻中心的新闻在首页自动生成提要了,呵呵。)这么多功能,大家多多原谅,嘿嘿。

  --------先插几句题外话,我们做网站时,是用html中间点缀PHP呢,还是用PHP来生成html?专业的站点可以把一个功能集中在一页,通过这一页调用不同的模块来实现各个子功能(这样客户端是不是就只有一页了呢?我没有试过)。不管怎样,功能模块化的软件复用是高效率开发的一个重要方法(也能节省你的主机空间哦^_^)。

  --------好了,下面我们就一起来把功能模块化吧。初学者请仔细阅读代码,尤其要注意基本函数的用法。高手就可以略过这一段了,呵呵(这么认真干吗?都看得人家不好意思了9-()。

  <?php
  /*head.php 为了避免被别人直接键入head.inc下载你的源代码,最好用php做后缀,这样,你的服务器才会先截获它进行处理,呵呵*/
  echo "<html><head><title>"
  echo "网页教学网"//如果标题常变,可做一个函数。
  echo "</title></head>"
  ?>
  这是一个写html头的一功能块。
  <?php
  /*makestr.php 定义一个公用处理文本中超链接的函数,假定文本中链接形式为${http://www.webjx.com|网页教学网}*/
  function makestr($text)
  { $str=$text;
  $a=strstr($s,'$}');//切除在$s中‘${'之前的子串
  if($a){
  $b=strstr($a,'}');
  if($b){
  $la=strlen($a);$ls=strlen($s);//取串长
  $s=substr($a,0,$ls-$la);//取子串,第二个参数为起点,第三个参数为取字符的个数
  $a=substr($a,2);//去掉'${'
  $lb=strlen($b);$la=strlen($a);
  $a=substr($a,0,$la-$lb);//取出超链接部分
  $b=substr($b,1);//去掉'}'
  $ta=strstr($a,"|");//寻找是否存在需要做链接的文字
  if($ta){
  $la=strlen($a);$lt=(strlen($ta);
  $linktext=substr($a,$la-$lt+1);
  $a=substr($a,0,$la-$lt);
  }
  else{
  $linktext=$a;
  }
  $s=$s."<a herf="".$a."">.$linktext."</a>.$b;//准备返回字串
  }
  }
  return($s);
  }

  --------如果你是一个新手,那么应该找一本html入门的书来看看。否则是很难成为一个PHP高手的。这些你开始看起来 非常简单的处理字符串的函数,经过你的巧妙运用,是能做很多漂亮的事的。下一讲,我们就可以看到我们准备了大半天的成果了,呵呵。

  三 首页新闻发布,让你更新更轻松(中)

  上次我们做了一个文件头(至于文件尾,请大家自己做,假设为tail.php),一个函数的模块,现在,我们来一个基本功能的实现,也就是动态发布啦

  <?php
  include("makestr.php";
  include("head.php");
  $newspath="/announce/"; //以文本文件存放的新闻文件的目录
  $newsfile=array();//准备新闻数组
  $hd=dir($newspath); //目录句柄
  while($filename=$hd->read()){ //获取全部文件
  $s=strtolower($filename);
  if(strstr($s,".txt")){
  //检测最新的修改日期
  $lastchanged=fileatime($newspath.$filename);
  $newsfile[$filename]=$lastchanged;
  }
  }
  arsort($newsfile); //文件按时间排序
  //输出文件
  for(reset($newsfile);$key=key($newsfile);next($newsfile))
  {$fa=file($newspath.$key);
  $n=count($fa);
  echo "<p>".date("d.m.Y-H:i:s".$newsfile[$key])."<br>\n";
  for($i=0;$i<$n;$i=$i+1){
  $s=chop($fa[$i]);//去除空格
  $s=htmlspecialchars($s);
  print $s."</p>\n";
  }
  }
  $hd->close(); //释放句柄
  include("tail.php");
  ?>

  这样,将你的新闻文本传上你根目录的annouce子目录下,就可以方便发布新闻了。但真正的方便还不在于这,比如说,当新闻过时的时候,程序能自动删除它,多好。不用ftp,直接在线写下要新发的公告,多方便。好了,且听下回分解。

  三 首页新闻发布,让你更新更轻松(下)

  -----上一讲里,我们已经实现了首页新闻发布的基本功能。在这一讲里,我们再给它添砖加瓦,使它的功能更为强大。(一个好用的软件,其实也就是基本功能加上一批附属功能,这些附属功能主要也是图个方便而已,呵呵)

  -----首先,我们再明确一下我们想获得什么方便。我们不希望几十天以前的东西我们忘了删除,结果还作为新闻发布在首页(很丢脸的哦^&^)。如果我们在基本实现中嵌入一段代码,比如说用filectime($filename),那么在UNIX下,我们就可以得到从1970年1月1日起以秒计到最后一次文件被改动的时间(在WINDOWS下返回的是文件生成的日期时间),而从 1970年1月1日起以秒计到现在的秒数可以用$mynow=mktime()来获得,减法,判断,IF >我们期望的时间,嘿嘿,Sorry,unlink($newspath.$filename)……什么?!您问这段代码应该放在哪儿?您说呢,呵呵。

  或许,你并不是常在一台机器上上网,当你获得了一条新的新闻后却不在你的爱机旁,怎么办?最理想的莫过于在主页上上传文件咯。你或许有一个页面(Admin?)需要用密码才能进入(假如你还爱惜自己的网站的话,这是有必要的,最好连文件名都不要让别人知道,呵呵)。下面是一段到处可见的文件上载的代码:

  <?
  if(isset($upfile))
  {
  ?> 

  已上载的文件信息如下:
      文件存放路径  : <?echo $upfile;?>
      原始文件名    : <?echo $upfile_name;?>
      文件大小(字节): <?echo $upfile_size;?>
      文件类型      : <?echo $upfile_type;?>

  <?
  }
  else
  {
  ?>
  <html>
  <head><title>新闻上传</title></head><body>
  <form enctype="multipart/form-data" method="post" action="<?echo $PHP_SELF;?>">
  <input type="hidden" name="MAX_FILE_SIZE" value="50000">
  请选择或输入上传文件名: <input name="upfile" type="file">
  <input type="submit" value="上传" name="submit">
  </form>
  </body></html>
  <?
  }
  ?> 

  -----这里我们又见到了PHP和HTML结合的一种形式,可以借鉴。文件上载虽然方便,但总给人一种不安全感。一旦泄密,你的服务器的系统安全就受到了威胁,因为上载的文件可能是一些破坏性的执行文件(也就是病毒或黑客程序啦)稳妥的做法是写一个在线编辑的文件,下面是一个示例:

  〈?php
  function mywritefile($filename,$contents){
  if($fp=fopen($filename,"w")){
  fwrite($fp,strpslashes($contents));
  fclose($fp);
  return 1;
  }
  else {return 0;};
  };
  //判断表单返回的变量
  if($submitButton=="完成"){
  $rs=mywritefile("$page","$test");
  echo "<a href ="$page">$page</a><br>";
  }
  elseif($action=="page") //变量action值为"page"的情况
  {$contents="$page";
  $fp=@fopen($content,"w+")or die('Could not open file!');
  $contents=htmlspecialchars($contents);
  fclose($fp);
  echo "<form action="admin.php?page=$page" method="POST" wrap=soft>";
  echo "$contents";
  echo "</textarea>";
  echo "<input type="submit" name="submitButton" value="完成">";
  echo "</form>";
  }
  else
  {echo "<form action="basename($PHP_SELF).?action=page" method="POST">";//注意引用程序内变量的方式。
  echo "<input type=text size=20 name=page>";
  echo "<input type="submit" name="send" value="选定">";
  echo "</form>";
  }
  ?>

  -----至此,首页新闻发布的实现已经可以告一段落了。 我们可以发现,任何一个功能(比较)强大的陈程式都是由一些简单的功能组合而成的。第三部分功能的整个完善过程使用叠加增强的方法,和软件工程的自顶向下,逐层分析的开发方法是不一样的。这是一个适用于学习的方法,自己写写习作还是挺管用的,呵呵。

时间: 2024-09-30 14:13:58

用动态网页技术PHP打造个人网站全攻略的相关文章

剖析各类恶意网页对策分析—注册表使用全攻略之七_注册表

剖析各类恶意网页对策分析-注册表使用全攻略之七 互联网利用IE等的漏洞完全可以让你通过浏览网页让你的电脑面目全非,或者格盘,甚至中下木马,传播病毒,而且这种形式的传播愈演愈烈,闲话少说了,现在来分析一下各类恶意网页. 分析前先介绍一下注册表的修改方法,因为注册表在网页病毒中是中枢,就是通过它让你的电脑面目全非. 第一种方法:直接修改法 就是在运行里敲入regedit,然后进行编辑,这是大家通常修改注册表的方法. 第二种方法:reg包导入法 现在以解锁注册表为例(其实解锁用兔子等工具更好更方便,这

新站一周打造2000IP/日全攻略

在开站一周之际写下此文,与广大站长分享网站推广技术,共同互利.以下是攻略正题主要流量来源 1.文本链 2.友情连接 3.搜索引擎 4.帖吧 1.文本链         带来300-500IP/日网上有很多文本交换链的网站,我这里推荐几个比较好的站http://www.is86.comhttp://www.24klink.comhttp://wwww.xlink.com文本连接的推广需要注意的是合理安排文本连位置,最好不要影响你首页的布局.申请多几个连接,带来IP量也是非常的可观的.2.友情连接 

把个人网站转变为商业网站全攻略

看到起点被收编了.hao123也回家数钱玩了.QQ挂机.色情短信.各种私服都火了,赚钱了.于是乎,工作室.soho.再创业者也就多了.千奇百怪的网站层出不穷.以为做个网站我就可以躺着数钱了....刚才一个朋友发给我这样一篇文章说得有些道理,故贴进来给大家看看....无论对于现在的个人网站还是所谓的个人商业网站,或许都有一些帮助. 网站没有价值,商业化就无从谈起.一个网站的价值,主要体现在以下三方面: 1: 规模性(量):网站必须已经具备了一定的规模,包括一定量的内容(页面数),或一定量的用户,或

淘宝客网站赚钱攻略之三

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 说到网站赚钱最近站长无疑关注最多的就属阿里妈妈的淘宝客了,所以前些天写了两篇淘宝客网站赚钱攻略,近段时间听说一些站长朋友们淘宝客网站流量是不少,几千甚至上万日IP,但是收入一天却只有几十元的现象,其实问题就出在各类细节上,如果把一些细节做好相信大家会进一步提高收入的,下面谈些关于新手做淘宝客网站细节方面的问题,话不多说下面直入主题了: 1.淘

webBrowser中操作网页元素全攻略

原文 webBrowser中操作网页元素全攻略 1.获取非input控件的值: webBrowser1.Document.All["控件ID"].InnerText; 或webBrowser1.Document.GetElementById("控件ID").InnerText; 或webBrowser1.Document.GetElementById("控件ID").GetAttribute("value"); 2.获取inp

运用Squidoo进行网站推广全攻略(四)

中介交易 SEO诊断 淘宝客 云主机 技术大厅 大家好,这是我们运用Squidoo进行WEB 2.0网站优化推广图文全攻略的第四篇了,在上一篇教程<运用Squidoo进行WEB 2.0网站优化推广图文全攻略(三 元素美化镜头篇)>中,我们建立了一个镜头的介绍模块,以及一个简单的博客RSS模块,我想你一定还记得上次最后我们看到的那一大串问号,也就是下面这张图片: 但是不知道大家有没有注意,第一行问号的那个PHP是正常显示的,事实上,我这篇博文名叫<百钱百鸡问题的PHP程序代码>,很巧

打造个性化右键菜单—注册表使用全攻略之十三_注册表

打造个性化右键菜单-注册表使用全攻略之十三 鼠标的右键选单中有很多快捷命令,给用户日常操作带来了极大的方便.但是,系统不可能做到将您所希望使用的命令都集成到右键选单中,有时您需要的命令根本就不存在,这就只能靠我们自己动手添加进去了.那么就让我们来看几个添加快捷命令的实例吧,只要把握了基本方法,我们就可以触类旁通,添加其他命令. 添加"关闭计算机" 一般我们都是通过点"开始"→"关闭系统"→"关闭计算机"→"确定&qu

被恶意网站击中的解决办法——注册表使用全攻略之六_注册表

被恶意网站击中的解决办法--注册表使用全攻略之六 一.注册表被修改的原因及解决办法 恶意网页是含有有害代码的ActiveX网页文件,这些广告信息的出现是因为浏览者的注册表被恶意更改的结果. 1.IE默认连接首页被修改 IE浏览器上方的标题栏被改成"欢迎访问--网站"的样式,受到更改的注册表项目为:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\Start PageHKEY_CURRENT_USER\Softwar

SEO老生常谈:提高网站收录和排名全攻略

现在网上有很多关于提高网站收录和排名方法的文章,大家都写得挺好的,而且关于这一问题更属于老生常谈.只不过对于很多网站SEO优化的新手来讲,一篇篇地看都太费时费力了,下面是郑州做网站公司_乐之人科技总结的一份简明版的提高网站收录和排名的方法全攻略,请大家参详,希望对大家有所帮助. 一.站内优化:做好内功,更需要注意保持站内权重的集中. 1.网站标题.无论是网站title还是内容标题,最好都适时体现出关键词,注意关键词分隔符号,例如百度一般用[_]或[丨].谷歌用[,]或[-]或空格.关键字与主标题