柔情似水 发表于 2015-2-4 00:02:57

PHP教程之用静态网页手艺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>";
  }
  ?>
  -----至此,首页旧事宣布的完成已可以告一段落了。 咱们可以发明,任何一个功效(对照)壮大的陈程式都是由一些复杂的功效组合而成的。第三局部功效的全部完美进程利用叠加加强的办法,和软件工程的自顶向下,逐层剖析的开辟办法是纷歧样的。这是一个合用于进修的办法,本人写写习作仍是挺管用的,呵呵。
从刚开始练习的PHP基础语法练习,到PHP语言在WEB中的应用,再到实际的项目开发,如留言版,相册系统,中小型公司网站系统,以及期间做过的有关团队合作的小游戏,让我受益匪浅,学到了很多。

飘灵儿 发表于 2015-2-4 08:08:14

学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql

爱飞 发表于 2015-2-6 17:00:17

如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,

若天明 发表于 2015-2-7 01:28:37

说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。

小妖女 发表于 2015-2-19 08:51:00

刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。

冷月葬花魂 发表于 2015-3-6 14:20:53

当然这种网站的会员费就几十块钱。

兰色精灵 发表于 2015-3-13 02:07:15

Ps:以上纯属原创,如有雷同,纯属巧合

小女巫 发表于 2015-3-24 14:08:48

你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。

飘飘悠悠 发表于 2015-3-28 01:25:47

写的比较杂,因为我也是个新手,不当至于大家多多指正。

灵魂腐蚀 发表于 2015-4-8 12:45:28

遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。

莫相离 发表于 2015-4-25 13:00:35

兴趣是最好的老师,百度是最好的词典。

透明 发表于 2015-5-10 19:54:36

首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。

再见西城 发表于 2015-5-10 23:58:37

最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。

愤怒的大鸟 发表于 2015-5-12 14:42:03

真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,

只想知道 发表于 2015-6-23 15:50:47

在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。

老尸 发表于 2015-6-28 13:07:28

为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。

深爱那片海 发表于 2015-7-5 01:06:32

首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。

仓酷云 发表于 2015-7-7 08:20:22

在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。

变相怪杰 发表于 2015-7-13 19:21:39

为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
页: [1]
查看完整版本: PHP教程之用静态网页手艺PHP打造团体网站全攻略