zl程序教程

您现在的位置是:首页 >  后端

当前栏目

PHP合并静态文件详解

PHP文件静态 详解 合并
2023-06-13 09:15:30 时间

配置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__
 *
 */
functionimport_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($filesas$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页面中使用<scripttype="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()处理相对路径的问题。

以上就是本文的全部内容了,更详细的信息请期待后续文章