PHP最先执行什么文件?

cnw168 2010-12-11 04:39:05
以前用c#现在想学习PHP,想做一个全站缓存功能。将所有需内的内容缓存成静态文件。
以前用C#是这样实现的。
在访问网站所有内容之前使用httpModules拦截访问路径。再根据访问路径从缓存目录中读出或重定向到缓存目录。如果缓存中不存在或过期。就执行原文件,再拦截输出流.Flush,将其写入缓存目录。

现在想用PHP写个一样的功能。但不知道PHP有没有和httpModules相似的功能,就是有多个事件触发,比如在执行所有程序之前触发和在生成完结果之后输出到客户端之前触发。

不要求说的太细,只要告给我学习方向就行了。
...全文
129 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
helloyou0 2010-12-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 cnw168 的回复:]
以前用c#现在想学习PHP,想做一个全站缓存功能。将所有需内的内容缓存成静态文件。
以前用C#是这样实现的。
在访问网站所有内容之前使用httpModules拦截访问路径。再根据访问路径从缓存目录中读出或重定向到缓存目录。如果缓存中不存在或过期。就执行原文件,再拦截输出流.Flush,将其写入缓存目录。

现在想用PHP写个一样的功能。但不知道PHP有没有和httpModules相似的功能……
[/Quote]

php.ini里有auto_prepend_file / auto_append_file 可以用
jueljust 2010-12-14
  • 打赏
  • 举报
回复
举例:apache下mod_cache
jueljust 2010-12-14
  • 打赏
  • 举报
回复
不需要,开启服务器静态缓存功能就好,各大主流服务器都支持
vitalgg 2010-12-11
  • 打赏
  • 举报
回复
没有的文件
httpd.conf中
ErrorDocument 404 /missing.html

在 missing.html 定义你要指定的信息。改成php可以动态定义。

如果有那个文件(静态文件)。只能用重定向规则了。
vitalgg 2010-12-11
  • 打赏
  • 举报
回复
这个啊。
用apache 的重定向实现。
cnw168 2010-12-11
  • 打赏
  • 举报
回复
可能我说的不大清楚

比如 有客户访问xxx.html文件,而些文件服务器上汉有。这时我想让它反回指定的信息
再或者某文件明明存在,但我让他显示404错误。

还有就是在全局范围内加入防CC代码。

这些在.NET中都可以在IIS执行程序之前或之后完成。
vitalgg 2010-12-11
  • 打赏
  • 举报
回复
至于先执行哪个,后执行哪个,
这要看主程序中 include("*.php")或require("*.php")的顺序了。
vitalgg 2010-12-11
  • 打赏
  • 举报
回复
写到php文件中。
ob_get_flush()得到的是字符串(HTML内容)

至于html缓存内容写到什么地方,起什么样的文件名,你自己定。
PHP要做的是就比较缓存文件的日期。如果过期了就重新生成并显示缓存内容,
如果你不想生成新的缓存,直接 print(ob_get_flush());或 ob_end_flush()就输出到浏览器了。原来缓存的内容还是旧的,不过就失去了缓存的意义。
cnw168 2010-12-11
  • 打赏
  • 举报
回复
这些函数写到什么文件里?我是想在所有文件之前执行,就算文件不存在它也可以按我需要的显示。
vitalgg 2010-12-11
  • 打赏
  • 举报
回复
用 ob_ 系列函数。
最开始判断缓存是否过期,如果不过期则输出缓存,
如果过期:
开始 ob_start()
最后 ob_get_flush() 得到输入的内容写缓存。
输出缓存。
cnw168 2010-12-11
  • 打赏
  • 举报
回复
这在网上找到了这个config.php
但不知道怎么用。会在其它文件执行前执行它吗?
PHP编程者 2010-12-11
  • 打赏
  • 举报
回复
也是新人,应该是加个函数就能实现吧
cnw168 2010-12-11
  • 打赏
  • 举报
回复
在线等啊

21,890

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧