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&amp;java(三)
Oct 09 PHP
ie6 动态缩略图不显示的原因
Jun 21 PHP
rrmdir php中递归删除目录及目录下的文件
May 15 PHP
php中使用Imagick实现图像直方图的实现代码
Aug 30 PHP
PHP的error_reporting错误级别变量对照表
Jul 08 PHP
PHP中使用socket方式GET、POST数据实例
Apr 02 PHP
PHP接收App端发送文件流的方法
Sep 23 PHP
php mysql获取表字段名称和字段信息的三种方法
Nov 13 PHP
PHP微信企业号开发之回调模式开启与用法示例
Nov 25 PHP
php实现微信公众平台发红包功能
Jun 14 PHP
PHP7 mongoDB扩展使用的方法分享
May 02 PHP
PHP 多进程与信号中断实现多任务常驻内存管理实例方法
Oct 04 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
Apache+php+mysql在windows下的安装与配置图解(最新版)
2008/11/30 PHP
PHP学习之数组的定义和填充
2011/04/17 PHP
php从右向左/从左向右截取字符串的实现方法
2011/11/28 PHP
PHP中__set()实例用法和基础讲解
2019/07/23 PHP
JavaScript判断DOM何时加载完毕的技巧
2012/11/11 Javascript
文本框中禁止非数字字符输入比如手机号码、邮编
2013/08/19 Javascript
JavaScript lastIndexOf方法入门实例(计算指定字符在字符串中最后一次出现的位置)
2014/10/17 Javascript
在JavaScript中操作时间之setYear()方法的使用
2015/06/12 Javascript
两种方法解决javascript url post 特殊字符转义 + &amp; #
2016/04/13 Javascript
Bootstrap 布局组件(全)
2016/07/18 Javascript
JS简单获取客户端IP地址的方法【调用搜狐接口】
2016/09/05 Javascript
Vue + Webpack + Vue-loader学习教程之功能介绍篇
2017/03/14 Javascript
ECMAScript6 新特性范例大全
2017/03/24 Javascript
用Axios Element实现全局的请求loading的方法
2018/03/15 Javascript
详解基于vue-cli3.0如何构建功能完善的前端架子
2018/10/09 Javascript
JS实现水平移动与垂直移动动画
2019/12/19 Javascript
vue实现循环滚动列表
2020/06/30 Javascript
JS出现404错误原理及解决方案
2020/07/01 Javascript
python 爬取微信文章
2016/01/30 Python
Python 爬虫的工具列表大全
2016/01/31 Python
python实现下载文件的三种方法
2017/02/09 Python
Python爬虫DOTA排行榜爬取实例(分享)
2017/06/13 Python
python+opencv轮廓检测代码解析
2018/01/05 Python
Python去除字符串前后空格的几种方法
2019/03/04 Python
解决python彩色螺旋线绘制引发的问题
2019/11/23 Python
numpy中三维数组中加入元素后的位置详解
2019/11/28 Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
2020/10/31 Python
Pycharm制作搞怪弹窗的实现代码
2021/02/19 Python
值得收藏的HTML5资源(学习html5的朋友可以收藏下)
2010/07/20 HTML / CSS
斯洛伐克最大的婴儿食品和用品网上商店:Feedo.sk
2020/12/21 全球购物
What is EJB
2016/07/22 面试题
银行纠风工作实施方案
2014/06/08 职场文书
小学一年级学生评语大全
2014/12/25 职场文书
2015年高校就业工作总结
2015/05/04 职场文书
2015年英语教研组工作总结
2015/05/23 职场文书
2019最新劳动仲裁申请书!
2019/07/08 职场文书