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 相关文章推荐
相对路径转化成绝对路径
Apr 10 PHP
用PHP读取flv文件的播放时间长度
Sep 03 PHP
深入apache配置文件httpd.conf的部分参数说明
Jun 28 PHP
支持生僻字且自动识别utf-8编码的php汉字转拼音类
Jun 27 PHP
Php连接及读取和写入mysql数据库的常用代码
Aug 11 PHP
PHP实现获取某个月份周次信息的方法
Aug 11 PHP
PHP工程师VIM配置分享
Dec 15 PHP
php+MySql实现登录系统与输出浏览者信息功能
Jul 01 PHP
php getcwd与dirname(__FILE__)区别详解
Sep 24 PHP
PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】
Dec 24 PHP
mac系统下安装多个php并自由切换的方法详解
Apr 21 PHP
laravel实现按时间日期进行分组统计方法示例
Mar 23 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静态文件生成类实例分析
2015/01/03 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
PHP程序员学习使用Swoole的理由
2018/06/24 PHP
safari下载文件自动加了html后缀问题
2018/11/09 PHP
jQuery+css+html实现页面遮罩弹出框
2013/03/21 Javascript
使用js判断当前时区TimeZone是否是夏令时
2014/02/23 Javascript
使用node.js 获取客户端信息代码分享
2014/11/26 Javascript
jQuery根据ID、CLASS、等获取对象的实例
2016/12/04 Javascript
React Native react-navigation 导航使用详解
2017/12/01 Javascript
javascript实现最长公共子序列实例代码
2018/02/05 Javascript
webpack 打包压缩js和css的方法示例
2018/03/20 Javascript
[02:58]献给西雅图的情书_高清
2014/05/29 DOTA
[05:49]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS 选手采访
2021/03/11 DOTA
python使用pyhook监控键盘并实现切换歌曲的功能
2014/07/18 Python
对于Python异常处理慎用“except:pass”建议
2015/04/02 Python
Python文件和流(实例讲解)
2017/09/12 Python
机器学习10大经典算法详解
2017/12/07 Python
Python实现KNN邻近算法
2021/01/28 Python
django使用xlwt导出excel文件实例代码
2018/02/06 Python
python Pandas 读取txt表格的实例
2018/04/29 Python
Python批量删除只保留最近几天table的代码实例
2019/04/01 Python
Python 利用高德地图api实现经纬度与地址的批量转换
2019/08/14 Python
python实现一个函数版的名片管理系统过程解析
2019/08/27 Python
Python实现栈和队列的简单操作方法示例
2019/11/29 Python
Python实现猜年龄游戏代码实例
2020/03/25 Python
CSS中垂直居中的简单实现方法
2015/07/06 HTML / CSS
托管代码(Managed Code)和非托管代码(Unmanaged Code)有什么区别
2014/09/29 面试题
知识竞赛主持词
2014/03/26 职场文书
社团活动总结范文
2014/04/26 职场文书
2014年勤工助学工作总结
2014/11/24 职场文书
2014年房地产个人工作总结
2014/12/20 职场文书
荒岛余生观后感
2015/06/09 职场文书
汽车销售员工作总结
2015/08/12 职场文书
小组口号霸气押韵
2015/12/24 职场文书
OpenCV-Python实现人脸美白算法的实例
2021/06/11 Python
Python爬取某拍短视频
2021/06/11 Python