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去除数组中重复的元素并按键名排序函数
Aug 18 PHP
《PHP编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
Nov 01 PHP
php处理json时中文问题的解决方法
Apr 12 PHP
对象失去焦点时自己动提交数据的实现代码
Nov 06 PHP
使用php get_headers 判断URL是否有效的解决办法
Apr 27 PHP
从PHP $_SERVER相关参数判断是否支持Rewrite模块
Sep 26 PHP
php实现图片添加水印功能
Feb 13 PHP
PHP return语句的另一个作用
Jul 30 PHP
PHP中让curl支持sock5的代码实例
Jan 21 PHP
基于PHP给大家讲解防刷票的一些技巧
Nov 18 PHP
PHP 闭包详解及实例代码
Sep 28 PHP
PHP DB 数据库连接类定义与用法示例
Mar 11 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编程最快明白》第七讲:php图片验证码与缩略图
2010/11/01 PHP
php过滤敏感词的示例
2014/03/31 PHP
PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】
2017/06/21 PHP
浅谈PHP中new self()和new static()的区别
2017/08/11 PHP
解决laravel5.4下的group by报错的问题
2019/10/16 PHP
js直接编辑当前cookie的脚本
2008/09/14 Javascript
js 中 document.createEvent的用法
2010/08/29 Javascript
JavaScript高级程序设计 事件学习笔记
2011/09/10 Javascript
jQuery function的正确书写方法
2013/08/02 Javascript
JavaScript获得当前网页来源页面(即上一页)的方法
2015/04/03 Javascript
js中函数声明与函数表达式
2015/06/03 Javascript
Jquery插件仿百度搜索关键字自动匹配功能
2016/05/11 Javascript
Vue之Watcher源码解析(2)
2017/07/19 Javascript
微信小程序遍历Echarts图表实现多个饼图
2019/04/25 Javascript
微信小程序下拉菜单效果的实例代码
2019/05/14 Javascript
javascript设计模式 ? 简单工厂模式原理与应用实例分析
2020/04/09 Javascript
react基本安装与测试示例
2020/04/27 Javascript
JavaScript 装逼指南(js另类写法)
2020/05/10 Javascript
Python的动态重新封装的教程
2015/04/11 Python
Django中处理出错页面的方法
2015/07/15 Python
Python编程使用tkinter模块实现计算器软件完整代码示例
2017/11/29 Python
python3读取excel文件只提取某些行某些列的值方法
2018/07/10 Python
selenium+python自动化测试环境搭建步骤
2019/06/03 Python
Python基于Tkinter编写crc校验工具
2020/05/06 Python
python 3.8.3 安装配置图文教程
2020/05/21 Python
css3隔行变换色实现示例
2014/02/19 HTML / CSS
CSS3中Transition动画属性用法详解
2016/07/04 HTML / CSS
美国生鲜及杂货电商:FreshDirect
2018/01/29 全球购物
八一慰问活动方案
2014/02/07 职场文书
教师读书活动总结
2014/05/07 职场文书
乡镇干部个人对照检查材料(群众路线)
2014/09/26 职场文书
小学感恩节活动策划方案
2014/10/06 职场文书
平安建设汇报材料
2014/12/29 职场文书
个性发展自我评价2015
2015/03/09 职场文书
干货:我将这样书写我的演讲稿!
2019/05/09 职场文书
利用nginx搭建RTMP视频点播、直播、HLS服务器
2022/05/25 Servers