用php更改非php输出内容
时间:2021-07-01 10:21:17
帮助过:2人阅读
用php更改非php输出内容...
前几天有个需求,就是将页面输出的内容进行过滤... 进行域名更换...
比如本来将输出的www.csdn.net/image/上面的图片内容,现在迁移到了cdn上面,域名更改为cdn.csdn.net/image/
再不更改模版的基础上,直接将输出进行修正...
实现过程
1.将所有输出放到output buffer里面
2.在php脚本结束后对output buffer进行修改过滤,再输出.
so测试如下:
原输出假设是如下:
那么在输出html前,加入到php执行中如下代码即可进行html内容的替换
输出 function change_image_domain(){ $output = ob_get_contents(); //对输出进行更改 ob_clean(); $output = str_replace('http://www.csdn.net/image/','http://cdn.csdn.net/image/',$output); echo $output; //更改后的输出 } register_shutdown_function('change_image_domain'); ?>
则输出变成
重点在于
1.ob_xxx函数 output buffer控制
2.register_shutdown_function函数 注册一个脚本结束时运行的函数..
注意:
1.register_shutdown_function的这个输出必须是最后一个register的...
2.如果流程中有output buffer控制函数,需要具体情况具体分析,进行使用.