仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1747|回复: 20
打印 上一主题 下一主题

[学习教程] PHP编程:Z-Blog分类标签全站静态化计划

[复制链接]
爱飞 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:31:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
刚开始觉得自己对这些多少有些基础,很简单,但是看了老师那么熟练的进行网页布局的时候,突然之间发现,其实,我的基础并没有自己想像的那么好,自己设计的页面其实并不好看,就连表格的边框为1像素都不会弄。    Z-Blog今朝已完成了首页和文章页的静态化,可以生成HTML文件,然而体系的分类页、标签Tags页、归档页和作者页都没有完成静态化,本文将讲述一个十分复杂的计划,可以主动生成各个分类页、归档页和Tags的静态HTML页面,以便用户将网站迁徙到Apache等不撑持ASP的主机上。
    Z-Blog的分类页、标签Tags页、归档页和作者页都是挪用catalog.asp这个文件,因而,修正这个文件,当用户挪用该文件的时分,主动生成针对该页面的HTML文件。假如访客重复读取这个文件,那末在必定工夫局限内,可以直接在文件开首利用静态文件,以到达节俭体系资本的目标。
    详细的修正办法是,先在根下创立一个目次cat,然后利用编纂器翻开Z-Blog根目次下的catalog.asp文件,在文件开首到场以下的代码:
  Dim objFSO
Dim objFile
Dim strFileName
Dim strFileTime
Dim isBuildFile
if Request.QueryString("cate")<>"" then
  if Request.QueryString("page")<>""then
   strFileName = "cate" + "_" + Request.QueryString("cate") + "_" + Request.QueryString("page") +".html"
  else
   strFileName = "cate" + "_" + Request.QueryString("cate") + ".html"
  end if
elseif Request.QueryString("tags")<>"" then
  if Request.QueryString("page")<>""then
   strFileName = "tags" + "_" + Request.QueryString("tags") + "_" + Request.QueryString("page") +".html"
  else
   strFileName = "tags" + "_" + Request.QueryString("tags") + ".html"
  end if
elseif Request.QueryString("auth")<>"" then
  if Request.QueryString("page")<>""then
   strFileName = "auth" + "_" + Request.QueryString("auth") + "_" + Request.QueryString("page") +".html"
  else
   strFileName = "auth" + "_" + Request.QueryString("auth") + ".html"
  end if
elseif Request.QueryString("date")<>"" then
  if Request.QueryString("page")<>""then
   strFileName = "date" + "_" + Request.QueryString("date") + "_" + Request.QueryString("page") +".html"
  else
   strFileName = "date" + "_" + Request.QueryString("date") + ".html"
  end if
elseif Request.QueryString("page")<>"" then
  strFileName = "default" + "_" + Request.QueryString("page") +".html"
else
  strFileName = "default_1" + ".html"
end If
isBuildFile = False
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(Server.MapPath(strFileName)) Then
  Set objFile = objFSO.GetFile(Server.MapPath(strFileName))
  strFileTime = objFile.DateLastModified
  Set objFile = Nothing
  If datediff("h",strFileTime,Now()) > 1 Then
   isBuildFile = True
  Else
   Server.Transfer strFileName
   Response.End
  End If
Else
  isBuildFile = True
End If
Set objFSO = Nothing
    找到 Response.Write ArtList.html 一行,在厥后面增添以下代码:
  If isBuildFile Then
     ArtList.FileName=strFileName
     ArtList.Directory="cat"
     ArtList.Save
End if
    如许,体系就会主动生玉成部静态页面的静态HTML文件,而且在1小时内不会反复生成,时代假如还有挪用,则主动载入静态HTML文件,以节俭体系资本。
    经由这番处置,Z-Blog的全体分类和Tags就都可以生成静态HTML页面了。
    经由静态化以后,就能够将Z-Blog全站都放在PHP+Apache的主机上了。详细办法是,设置装备摆设Apache主机,使其用php的办法解析asp,然后编纂catalog.asp这个文件,将其代码修正为以下便可:
  if (isset($_GET['cate'])) {
  if (isset($_GET['page'])) {
   $strFileName = "cate_".strip_tags(stripslashes(trim($_GET['cate'])))."_".strip_tags(stripslashes(trim($_GET['page']))).".html";
  } else {
   $strFileName = "cate_".strip_tags(stripslashes(trim($_GET['cate']))).".html";
  }
} else if (isset($_GET['tags'])) {
  if (isset($_GET['page'])) {
   $strFileName = "tags_".strip_tags(stripslashes(trim($_GET['tags'])))."_".strip_tags(stripslashes(trim($_GET['page']))).".html";
  } else {
   $strFileName = "tags_".strip_tags(stripslashes(trim($_GET['tags']))).".html";
  }
} else if (isset($_GET['auth'])) {
  if (isset($_GET['page'])) {
   $strFileName = "auth_".strip_tags(stripslashes(trim($_GET['auth'])))."_".strip_tags(stripslashes(trim($_GET['page']))).".html";
  } else {
   $strFileName = "auth_".strip_tags(stripslashes(trim($_GET['auth']))).".html";
  }
} else if (isset($_GET['date'])) {
  if (isset($_GET['page'])) {
   $strFileName = "date_".strip_tags(stripslashes(trim($_GET['date'])))."_".strip_tags(stripslashes(trim($_GET['page']))).".html";
  } else {
   $strFileName = "date_".strip_tags(stripslashes(trim($_GET['date']))).".html";
  }
} else if (isset($_GET['page'])) {
  $strFileName = "default_".strip_tags(stripslashes(trim($_GET['page']))).".html";
} else {
  $strFileName = "../default.html";
}
define("HTML_FILE",  dirname(__FILE__)."/".$strFileName);
if (file_exists(HTML_FILE)) {
  echo(file_get_contents(HTML_FILE));
  exit(0);
} else {
  exit(0);
}
  
我先把我自己学习PHP的过程做一下概括:
再见西城 该用户已被删除
沙发
发表于 2015-2-4 00:26:21 | 只看该作者
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
透明 该用户已被删除
板凳
发表于 2015-2-4 00:26:21 | 只看该作者
当然这种网站的会员费就几十块钱。
灵魂腐蚀 该用户已被删除
地板
发表于 2015-2-9 08:23:01 | 只看该作者
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
再现理想 该用户已被删除
5#
发表于 2015-2-9 19:46:10 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
莫相离 该用户已被删除
6#
发表于 2015-2-27 19:14:46 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
小女巫 该用户已被删除
7#
发表于 2015-3-5 15:56:20 | 只看该作者
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
不帅 该用户已被删除
8#
发表于 2015-3-12 09:36:54 | 只看该作者
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
因胸联盟 该用户已被删除
9#
发表于 2015-3-17 08:10:23 | 只看该作者
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
愤怒的大鸟 该用户已被删除
10#
发表于 2015-3-20 09:52:27 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
小魔女 该用户已被删除
11#
发表于 2015-3-22 01:17:31 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
蒙在股里 该用户已被删除
12#
发表于 2015-3-24 10:08:56 | 只看该作者
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
飘灵儿 该用户已被删除
13#
发表于 2015-3-30 08:57:18 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
若天明 该用户已被删除
14#
发表于 2015-4-16 16:47:56 | 只看该作者
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
15#
发表于 2015-4-28 13:48:51 | 只看该作者
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
老尸 该用户已被删除
16#
发表于 2015-5-3 06:42:54 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
谁可相欹 该用户已被删除
17#
发表于 2015-5-6 16:11:39 | 只看该作者
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
活着的死人 该用户已被删除
18#
发表于 2015-6-16 00:54:00 | 只看该作者
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
变相怪杰 该用户已被删除
19#
发表于 2015-6-23 23:03:58 | 只看该作者
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
冷月葬花魂 该用户已被删除
20#
发表于 2015-6-26 20:48:20 | 只看该作者
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 00:40

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表