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 相关文章推荐
让你的网站首页自动选择语言转跳
Dec 06 PHP
PHP中的array数组类型分析说明
Jul 27 PHP
PHP的array_diff()函数在处理大数组时的效率问题
Nov 27 PHP
浅谈PHP变量作用域以及地址引用问题
Dec 27 PHP
淘宝ip地址查询类分享(利用淘宝ip库)
Jan 07 PHP
Parse正式发布开源PHP SDK
Aug 11 PHP
PHP间隔一段时间执行代码的方法
Dec 02 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
Feb 08 PHP
php需登录的文件上传管理系统
Mar 21 PHP
php连接oracle数据库的核心步骤
May 26 PHP
php解析base64数据生成图片的方法
Dec 06 PHP
PHP isset()及empty()用法区别详解
Aug 29 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 各种应用乱码问题的解决方法
2010/05/09 PHP
php入门学习知识点五 关于php数组的几个基本操作
2011/07/14 PHP
php文件缓存方法总结
2016/03/16 PHP
PHP生成腾讯云COS接口需要的请求签名
2018/05/20 PHP
php 自定义函数实现将数据 以excel 表格形式导出示例
2019/11/13 PHP
jQuery控制图片的hover效果(smartRollover.js)
2012/03/18 Javascript
jquery的trigger和triggerHandler的区别示例介绍
2014/04/20 Javascript
JQuery获取表格数据示例代码
2014/05/26 Javascript
Javascript让DEDECMS告别手写Tag
2014/09/01 Javascript
Jquery 实现图片轮换
2015/01/28 Javascript
Js实现简单的小球运动特效
2016/02/18 Javascript
javascript中new Array()和var arr=[]用法区别
2017/12/01 Javascript
微信小程序页面缩放式侧滑效果的实现代码
2018/11/15 Javascript
详解Vue This$Store总结
2018/12/17 Javascript
js根据需要计算数组中重复出现某个元素的个数
2019/01/18 Javascript
在小程序中推送模板消息的实现方法
2019/07/22 Javascript
小程序实现长按保存图片的方法
2019/12/31 Javascript
详解Howler.js Web音频播放终极解决方案
2020/08/23 Javascript
python判断输入日期为第几天的实例
2018/11/13 Python
使用Python制作简单的小程序IP查看器功能
2019/04/16 Python
pycharm部署、配置anaconda环境的教程
2020/03/24 Python
CSS3实现跳动的动画效果
2016/09/12 HTML / CSS
Mountain Warehouse德国官网:英国户外零售商
2019/08/11 全球购物
阿迪达斯中国官网:Adidas中国
2020/12/14 全球购物
利用异或运算实现两个无符号数的加法运算
2013/12/20 面试题
计算机专业应届毕业生自荐信
2013/09/26 职场文书
公司廉洁自律承诺书
2014/03/27 职场文书
乡镇领导班子四风对照检查材料
2014/09/27 职场文书
县长群众路线对照检查材料思想汇报
2014/10/02 职场文书
接待员岗位职责
2015/02/13 职场文书
万能检讨书开头与结尾怎么写
2015/02/17 职场文书
幼儿园教师求职信
2015/03/20 职场文书
2015年“7.11”世界人口日宣传活动方案
2015/05/06 职场文书
2019年入党思想汇报
2019/03/25 职场文书
入党转正申请自我鉴定
2019/06/25 职场文书
PostgreSQL基于pgrouting的路径规划处理方法
2022/04/18 PostgreSQL