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 相关文章推荐
php 远程关机操作的代码
Dec 05 PHP
php 归并排序 数组交集
May 10 PHP
php使用ob_start()实现图片存入变量的方法
Nov 14 PHP
PHP实现将HTML5中Canvas图像保存到服务器的方法
Nov 28 PHP
Yii中使用PHPExcel导出Excel的方法
Dec 26 PHP
在Nginx上部署ThinkPHP项目教程
Feb 02 PHP
php随机获取金山词霸每日一句的方法
Jul 09 PHP
php把数组值转换成键的方法
Jul 13 PHP
php实现简单的上传进度条
Nov 17 PHP
Docker 如何布置PHP开发环境
Jun 21 PHP
php输出含有“#”字符串的方法
Jan 18 PHP
php框架知识点的整理和补充
Mar 01 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引用(&amp;)各种使用方法实例详解
2014/03/20 PHP
php过滤敏感词的示例
2014/03/31 PHP
PHP 之 写时复制介绍(Copy On Write)
2014/05/13 PHP
ThinkPHP3.1查询语言详解
2014/06/19 PHP
PHP实现防止表单重复提交功能【基于token验证】
2018/05/24 PHP
php 实现银联商务H5支付的示例代码
2019/10/12 PHP
jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页
2008/12/25 Javascript
Javascript解决常见浏览器兼容问题的12种方法
2010/01/04 Javascript
jquery实现的仿天猫侧导航tab切换效果
2015/08/24 Javascript
最简单的tab切换实例代码
2016/05/13 Javascript
全面解析JavaScript中“&amp;&amp;”和“||”操作符(总结篇)
2016/07/18 Javascript
BootStrap中Datepicker控件带中文的js文件
2016/08/10 Javascript
非常优秀的JS图片轮播插件Swiper的用法
2017/01/03 Javascript
vue.js 获取当前自定义属性值
2017/06/01 Javascript
vue获取dom元素注意事项
2017/12/28 Javascript
JS工厂模式开发实践案例分析
2019/10/17 Javascript
Element Steps步骤条的使用方法
2020/07/26 Javascript
[01:31](回顾)杀出重围,决战TI之巅
2014/07/01 DOTA
Python实现数据库并行读取和写入实例
2017/06/09 Python
Python中字典(dict)合并的四种方法总结
2017/08/10 Python
解决Python2.7中IDLE启动没有反应的问题
2018/11/30 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
2019/02/21 Python
python安装gdal的两种方法
2019/10/29 Python
Python xlwt模块使用代码实例
2020/06/10 Python
Python自省及反射原理实例详解
2020/07/06 Python
python如何操作mysql
2020/08/17 Python
Smashbox官网:美国知名彩妆品牌
2017/01/05 全球购物
Otticanet意大利:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
德国高尔夫商店:Golfshop.de
2019/06/22 全球购物
毕业实习个人鉴定范文
2013/12/10 职场文书
爱心倡议书范文
2014/05/12 职场文书
2014优秀大学生简历自我评价
2014/09/15 职场文书
好员工观后感
2015/06/17 职场文书
关于公司年会的开幕词
2016/03/04 职场文书
go开发alertmanger实现钉钉报警
2021/07/16 Golang
详解Python中*args和**kwargs的使用
2022/04/07 Python