Home  >  Article  >  Backend Development  >  Detailed example of php merging static files

Detailed example of php merging static files

怪我咯
怪我咯Original
2017-07-05 10:51:321027browse

The article introduces in detail the relevant configuration and complete code required for php to merge static files, as well as usage instructions. It is very detailed. It is recommended here to friends in need

Configuring PHP.ini

Change the configuration item (required) auto_prepend_file = "C:\xampp\htdocs\auto_prepend_file.php"

Change the configuration item (optional) allow_url_include = On

auto_prepend_file.php file content

The code is as follows:

<?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);
}
?>

How to use

The code is as follows:

"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);
?>

Use 72b7563d7e381b6b98aa2e59fcb9f6232cacc6d41bbb37262a98f745aa00fbf0 can be imported.

Before the product goes online, use batch process files to process, mainly doing two aspects of work
1. Output "*.js.php" to "*.js" file , and delete "*.js.php". Command line: php *.js.php > *.js
2. Replace the reference to "*.js.php" in the HTML page with "*.js". preg_replace()

PS: The import_static function solves the problem of include() processing relative paths in PHP.

The above is the detailed content of Detailed example of php merging static files. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn