zoukankan      html  css  js  c++  java
  • PHP合并静态文件

    配置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 &gt *.js
    2. 将HTML页面中对"*.js.php"的引用替换为"*.js"。preg_replace()

    PS:import_static函数解决了PHP中include()处理相对路径的问题。

    待续。。。

  • 相关阅读:
    时间格式
    分页1
    vs2010 VS2008 VS2005 快捷键大全
    css 常用标签
    JS Array数组操作
    CSS属性
    jquery 选择器大全
    @fontface
    以前写过的ajax基础案例(王欢huanhuan)
    Jquery操作下拉框(DropDownList)的取值赋值实现代码(王欢)
  • 原文地址:https://www.cnblogs.com/rainman/p/2474451.html
Copyright © 2011-2022 走看看