PHP使用ob_start+callback回调的时候路径设置不当出现的问题
来源:互联网 发布:ufida用友软件 编辑:程序博客网 时间:2024/06/05 10:20
Envirenment:
同一台服务器
N个独立文件夹
IIS6
独立的应用池
独立域名
PHP5.2 + IIS的 FastCGI搭建
-------------------------
Symptom:
多个网站都使用到了ob_start()缓冲区技术,同时使用callback回调函数来替换缓冲区内的关键字然后再输出到浏览器
遇到奇怪的事情是网站A的缓冲区内容居然跑到网站B去了,表现为网页标题A变成了 网站B的相同文件名的标题B!
经查,应该是FASTCGI和IIS协同工作不一致的问题导致
解决办法,
在回调函数中,加入路劲绑定.将cgi的工作路径强制改回正确的工作目录中
考虑到不同服务器环境可能导致的不一致,加入了兼容性判断
只需要在你的回调函数中加入一句:
if (strstr($_SERVER["SCRIPT_FILENAME"], $_SERVER["PHP_SELF"])) {
$reference = $_SERVER["SCRIPT_FILENAME"];
} else {
$reference = $_SERVER["PATH_TRANSLATED"];
}
chdir(dirname($reference));
即可将目录正确的设置到本网站,搞定问题.
0 0
- PHP使用ob_start+callback回调的时候路径设置不当出现的问题
- php中ob_start()系列函数的使用
- PHP的ob_start()相关
- 分析PHP的ob_start()
- PHP的ob_start()用法
- PHP的ob_start();用法
- PHP的ob_start();用法
- PHP的ob_start()
- PHP的ob_start()
- php 的 ob_start
- PHP的ob_start()函数用法
- ImageView的scaleType设置不当,导致使用Glide时出现OOM
- ImageView的scaleType设置不当,导致使用Glide时出现OOM
- ImageView的scaleType设置不当,导致使用Glide时出现OOM
- ImageView的scaleType设置不当,导致使用Glide时出现卡顿
- java多线程使用不当造成的问题
- StringBuffer使用不当,引起的性能问题
- 使用NetBean编程时候出现的问题
- 安卓刷新图库
- dubbo的xml配置文件有红叉问题
- SpringMVC返回JSON数据中日期类型数据的格式化
- Mac 使用 Aria2 下载百度网盘资源
- OKHttp源码分析
- PHP使用ob_start+callback回调的时候路径设置不当出现的问题
- QT环境搭建: QT-4.8.6在windows下的使用 -(2)静态编译
- Linux常用指令---grep(搜索过滤)
- view和layer的区别
- Git命令
- centos7安装febootstrap
- LeetCode刷题【Array】 Product of Array Except Self
- 将字符串转换为整数
- Spark(二): 内存管理