首頁  >  文章  >  後端開發  >  php 合併靜態檔案範例詳解

php 合併靜態檔案範例詳解

怪我咯
怪我咯原創
2017-07-05 10:51:321087瀏覽

文章詳細介紹了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], &#39;.js&#39;) !== false) {
            $header_str = &#39;Content-Type:   text/javascript&#39;;
        } elseif (stripos($files[0], &#39;.css&#39;) !== false) {
            $header_str = &#39;Content-Type:   text/css&#39;;
        }
        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(
        &#39;a.js&#39;,
        &#39;b.js&#39;,
        &#39;../c.js&#39;,
        &#39;../moduleB/all.js.php&#39;    // 也可引用.php文件
    ), FILE);
?>

在HTML頁面中使用98ab768c4d4a244cc055b729825139b92cacc6d41bbb37262a98f745aa00fbf0即可引入。

產品上線前,使用批次處理文件進行處理,主要做兩方面的工作
1.將"*.js.php"輸出到"*.js"文件,並刪除"*.js.php"。命令列:php *.js.php > *.js
2.將HTML頁面中對"*.js.php"的引用替換為"*.js"。 preg_replace()

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

以上是php 合併靜態檔案範例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn