程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP合並靜態文件詳解

PHP合並靜態文件詳解

編輯: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 > *.js
2.將HTML頁面中對"*.js.php"的引用替換為"*.js"。preg_replace()

PS:import_static函數解決了PHP中include()處理相對路徑的問題。

以上就是本文的全部內容了,更詳細的信息請期待後續文章

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved