PHP合并静态文件详解


Posted in PHP onNovember 14, 2014

配置PHP.ini

更改配置项(必须)auto_prepend_file = "C:\xampp\htdocs\auto_prepend_file.php"

更改配置项(可选)allow_url_include = On

auto_prepend_file.php文件内容

<?php

/**

 * 引入static文件

 * @param {array|string} 相对路径

 * @param {string} 当前执行脚本所在的路径__FILE__

 *

 */

function import_static($files, $path=NULL){

    // 更改当前脚本的执行路径

    $old_dir = getcwd();

    $tmp_dir = (isset($path)) ? dirname($path): dirname(__FILE__);

    chdir($tmp_dir);

    // 整理包含文件

    if (!is_array($files)) {

        $tmp = array();

        $tmp[] = $files;

        $files = $tmp;

    }

    // 发送头信息

    if (isset($files[0])) {

        if (stripos($files[0], '.js') !== false) {

            $header_str = 'Content-Type:   text/javascript';

        } elseif (stripos($files[0], '.css') !== false) {

            $header_str = 'Content-Type:   text/css';

        }

        if (!ob_get_contents()) {

            header($header_str);

        }

    }

    // 引入包含文件

    foreach($files as $key=>$value) {

        require_once($value);

    }

    // 改回当前脚本的执行路径

    chdir($old_dir);

}

?>

使用方法

"a.js"、"b.js"和"../c.js"是待合并的JS文件,将其合并为base.js.php,则base.js.php中的代码如下:

<?php

    import_static(array(

        'a.js',

        'b.js',

        '../c.js',

        '../moduleB/all.js.php'    // 也可引用.php文件

    ), __FILE__);

?>

在HTML页面中使用<script type="text/javascript" src="base.js.php"></script>即可引入。

产品上线前,使用批处理文件进行处理,主要做两方面的工作
1.将"*.js.php"输出到"*.js"文件,并删除"*.js.php"。命令行:php *.js.php > *.js
2.将HTML页面中对"*.js.php"的引用替换为"*.js"。preg_replace()

PS:import_static函数解决了PHP中include()处理相对路径的问题。

以上就是本文的全部内容了,更详细的信息请期待后续文章

PHP 相关文章推荐
配置支持SSI
Nov 25 PHP
php str_pad 函数用法简介
Jul 11 PHP
php5.3 注意事项说明
Jul 01 PHP
PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
Jun 19 PHP
PHP中UNIX时间戳和日期间的转换与计算实例
Nov 19 PHP
php 使用array函数实现分页
Feb 13 PHP
PHP7匿名类用法分析
Sep 26 PHP
php并发加锁示例
Oct 17 PHP
phpmailer绑定邮箱的实现方法
Dec 01 PHP
thinkPHP框架实现图像裁剪、缩放、加水印的方法
Mar 14 PHP
PHP 实现浏览记录并按日期分组
May 11 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
Jun 16 PHP
php判断类是否存在函数class_exists用法分析
Nov 14 #PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
Nov 14 #PHP
php使用ob_start()实现图片存入变量的方法
Nov 14 #PHP
php使用date和strtotime函数输出指定日期的方法
Nov 14 #PHP
php获取url参数方法总结
Nov 13 #PHP
PHP采用get获取url汉字出现乱码的解决方法
Nov 13 #PHP
php数组保存文本与文本反编成数组实例
Nov 13 #PHP
You might like
修改了一个很不错的php验证码(支持中文)
2007/02/14 PHP
phpMyAdmin下载、安装和使用入门教程
2007/05/31 PHP
php GUID生成函数和类
2014/03/10 PHP
ThinkPHP中的关联模型注意点
2014/06/16 PHP
9个比较实用的php代码片段
2016/03/15 PHP
Javascript中的常见排序算法
2007/03/27 Javascript
top.location.href 没有权限 解决方法
2008/08/05 Javascript
Javascript动态绑定事件的简单实现代码
2010/12/25 Javascript
跨浏览器的事件对象介绍
2012/06/27 Javascript
使用apply方法处理数组的三个技巧[译]
2012/09/20 Javascript
jquery对元素拖动排序示例
2014/01/16 Javascript
使用正则表达式的格式化与高亮显示json字符串
2014/12/03 Javascript
JS实现网页背景颜色与select框中颜色同时变化的方法
2015/02/27 Javascript
简单总结JavaScript中的String字符串类型
2016/05/26 Javascript
javascript动画之模拟拖拽效果篇
2016/09/26 Javascript
Node.js常用工具之util模块
2017/03/09 Javascript
javascript实现table单元格点击展开隐藏效果(实例代码)
2017/04/10 Javascript
js上传图片预览的实现方法
2017/05/09 Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
2017/07/26 Javascript
jquery tmpl模板(实例讲解)
2017/09/02 jQuery
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
2019/04/10 jQuery
在Vue项目中使用Typescript的实现
2019/12/19 Javascript
python网页请求urllib2模块简单封装代码
2014/02/07 Python
python实现超简单端口转发的方法
2015/03/13 Python
pandas.loc 选取指定列进行操作的实例
2018/05/18 Python
Python3实现汉语转换为汉语拼音
2019/07/08 Python
python标记语句块使用方法总结
2019/08/05 Python
Python笔记之代理模式
2019/11/20 Python
利用python如何实现猫捉老鼠小游戏
2020/12/04 Python
CSS3选择器新增问题的实现
2021/01/21 HTML / CSS
英国最大的高品质珠宝和手表专家:Goldsmiths
2017/03/11 全球购物
Watch Station官方网站:世界一流的手表和智能手表
2020/01/05 全球购物
竞选部门副经理的自荐书范文
2014/02/11 职场文书
企业安全生产月活动总结
2014/07/05 职场文书
党委书记个人检查对照材料思想汇报
2014/10/11 职场文书
使用PDF.js渲染canvas实现预览pdf的效果示例
2021/04/17 Javascript