您现在的位置是:首页 > cms教程 > phpcms教程phpcms教程
phpcms源码index文件分析
笑霜2025-06-11phpcms教程已有人查阅
导读这次是逆雪寒对index.php的分析:尽量每天都有新的东西每天都能进一小步现在开始讲index.php 首页文件. 基本来说PHPCMS的加载到显示操作的整个流程都分析完了.
这次是逆雪寒对index.php的分析:尽量每天都有新的东西每天都能进一小步现在开始讲index.php 首页文件. 基本来说PHPCMS的加载到显示操作的整个流程都分析完了.
大家看一遍后.还要整体的来看来分析.慢慢体会.把些好的思想和思路实现到自己以后的项目里.
我相信大家都会变得很强的. 记得: 程序是死的,人是活的.有实现思路一切都好办了.
大家看一遍后.还要整体的来看来分析.慢慢体会.把些好的思想和思路实现到自己以后的项目里.
我相信大家都会变得很强的. 记得: 程序是死的,人是活的.有实现思路一切都好办了.
<?php
/*
代码分析版权所有
*/
/*
看 common.inc.php 核心启动文件我们已经讲解完了。应该都明白了吧
*/
require './include/common.inc.php';
/*
phpcms 允许在后台生静态和使用静态,这里就是先判断 $PHPCMS['ishtml']
(从文本缓存弄过来的。应该知道了吧)是否为1 就是开启了。和这个 静态的html文件是否存在。
*/
if($PHPCMS['ishtml'] == 1 && file_exists(PHPCMS_ROOT.'/'.$PHPCMS['index'].'.'.$PHPCMS['fileext']))
{
header('location:'.$PHPCMS['index'].'.'.$PHPCMS['fileext']);
exit;
}
$channels = array();
$channels['article'] = $channels['down']
= $channels['picture']
= $channels['info']
= array();
// 获取频道模块的信息。都是从缓存中取的
foreach($CHANNEL as $v)
{
$module = $v['module'];
if($v['islink'] == 0 && $MODULE[$module]['iscopy'] == 1)
{
$channels[$module][$v['channelid']] = $v;
}
}
// 这个是网页的SEO (title,keywords,description)信息。这个写好了。网络蜘蛛会找你哦。
$head['title'] = $PHPCMS['seo_title'];
$head['keywords'] = $PHPCMS['seo_keywords'];
$head['description'] = $PHPCMS['seo_description'];
/*
* template() 函数是模板函数。这个就是这章的主题。往下会讲模板引擎的制作,大家都看到include 了吧。
* 它的参数是文件地址。那么就可以想到 template()函数其实就是模板编译后的PHP文件地址。
*/
include template('phpcms', 'index');
/*
这个函数厉害了。用来自动生缓存页的(这个是页面缓存和数据库信息的文本缓存不是一回事),页面缓存,
就是把你所看的页自动生成 XX.html 静态页。请注意前面代码。是不是有个 header()跳转到静态页呀。
那静态页那里来的?就是给这个函数弄出来的。自动静态化了其实。@@是不是很简单呢。上菜先:
*/
/*
首先判断。文件当前文件不是JS问文件和后台打开了页面缓存静态化,。然后使用了OB读写缓冲区系列函数来操作缓冲区。
ob_get_clean() 函数。十分有用。一般我们做整站静态化也是利用OB系列函数来实现。
这个函数就是获取当前缓冲区的HTML内容。然后把将要输出的缓冲区内容清除掉。网页先是一点点读到浏览器的缓冲区。
当缓冲区满了以后才会放出来。所以我们
可以用OB系列函数在缓冲区没有输出之前截取内容来做我们要做的过滤等动作。(dz的伪静态有部分就这样实现的。
把缓冲区中的所有超级连接地址更改成:thread-46695-1-3.html 形式。然后apache 那边再用.hataccess 来做判断跳转)
这里也是。我们获取将要输出的内容以后 调用 strip_js() 这个函数来过滤HTML内容。 因为比较简单继续上菜:
*/
function phpcache($is_js = 0)
{
global $CONFIG, $cachefiledir, $cachefile;
if(!$is_js && $CONFIG['phpcache'] != '2') {
return FALSE;
}
$contents = ob_get_clean();
if($is_js) {
$contents = strip_js($contents);
}
if($CONFIG['phpcache'] == '2' && $cachefiledir && $cachefile)
{
dir_create($cachefiledir);
file_put_contents($cachefile, $contents);
@chmod($cachefile, 0777);
}
// 告诉浏览器此页面的过期时间(用格林威治时间表示),只要是已经过去的日期即可
header('Expires: Mon, 26 Jul 2000 05:00:00 GMT');
// 告诉服务器本页之后修改日期。目的就是强迫浏览器获取较新资料
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
// 这句 session_cache_limiter('private') 作用差不多。
// 就是用户 点击后退不会出现警告页。十分有用哦。大家别忘了
header('Cache-Control: no-cache, must-revalidate');
// 不缓存当前页 。其实和前一句一样意思,这句不过是为了兼容http1.0协议。
header('Pragma: no-cache');
// 输出内容。
echo $contents;
}
phpcache();
/*
主要是来过滤内容里面的 \n 换行 、\r 换页符 和'\'具体请百度:制表符
继续我们上个函数strip_js过滤完内容后。 在使用 file_put_contents() 函数 把内容写到文件里面去。
也就是那个 HTML静态页,恩完成了。当前页的静态页已经存在了。
但好象不对是吧。因为你刚用了 ob_get_clean() 函数。截取内容后清空了输出的内容。
那就是浏览器成了空白页了。所以我们要手动的来 echo 输出内容给客户看。echo 前呢
还有些东西要做就是 header 几个http协议头过去 注释已经给出。详细的百度:http协议,
会有详细的参数说明 。其主要目的是:强制用户每次访问这个页面时获取较新资料,而不是使用存在客户端的缓存。
*/
function strip_js($string, $js = 1)
{
$string = str_replace(array("\n","\r","\""),array('','',"[url=]\\\""),$string[\url]);
return $js == 1
? "document.write(\"".$string."\");\n"
: $string;
}
/*
本文标签:
很赞哦! ()
相关教程
图文教程
phpcms怎么做企业站
利用phpcms制作企业站,首先要将静态的企业主页替换成后台可编辑的动态主页。在phpcms/install_package/phpcms/templates新建一个英文文件夹
phpcms首页模板替换的方法
首页的替换流程首先要先把静态网页做出来,拿这个页面去替换页面所有的文件都在这,做静态页面的文件现在要做的是把这些文件复制一下拿到phpcms里面有个Phpcms文件夹
phpcmsv9密码重试次数太多,请过-xxx分钟后重新登录的解决方法
PHPCMSV9“密码重试次数太多,请过-xxx分钟后重新登录!”的解决办法找到文件\phpcms\modules\admin\index.php
phpcms模板安装方法
首先准备好你下载的模版文件,解压成文件夹里面有phpcms 和statics两个文件在我们安装好的phpcms系统中,就有phpcms文件夹,和statics两个文件夹
相关源码
-
(PC+WAP)绿色日志美文文学说说博客网站pbootcms模板除日志博客类网站外,通过替换图文内容可快速适配:心情日记分享平台、文学创作社区、朋友圈内容聚合站、美文鉴赏网站、读书笔记平台等应用场景。查看源码 -
(自适应)代理记账财务会计咨询服务个人公司网站模板该响应式网站模板为代理记账、财政咨询及财务会计类企业设计,基于PbootCMS内核开发。通过自适应手机端的HTML5技术,帮助企业高效构建专业财税服务平台查看源码 -
(自适应)家政保洁保姆打扫卫生清灰服务pbootcms模板免费下载采用手工编写的DIV+CSS架构,代码结构清晰无冗余,加载速度优异。响应式设计适配各类终端设备,保障手机、平板、电脑端的一致浏览体验。查看源码 -
自适应电子科技类产品公司pbootcms网站模板基于PbootCMS内核开发,为电子科技类企业设计,适用于电子产品展示、企业官网等场景。该模板采用开源架构,用户可自由访问和修改源码,灵活适配各类行业需求,无需二次开发成本查看源码 -
(PC+WAP)智能机器人人工智能物联网自动化设备源码下载本模板基于PbootCMS内核开发,为智能机器人及传感器科技企业精心设计。采用现代化设计风格,突出科技感与专业性,多方位展示企业技术实力与产品优势。查看源码 -
(PC+WAP)院校学院职业学校机构协会网站开源源码下载本模板基于PbootCMS系统开发,为高等院校、职业学校等教育机构设计,特别适合展示学校概况、院系设置、招生信息等内容。采用双端适配技术,确保在PC和移动设备上都能获得良好的浏览体验。查看源码
| 分享笔记 (共有 篇笔记) |
