PHP合并靜態(tài)文件詳解
配置PHP.ini
更改配置項(必須)auto_prepend_file = "C:\xampp\htdocs\auto_prepend_file.php"
更改配置項(可選)allow_url_include = On
auto_prepend_file.php文件內(nèi)容
<?php
/**
* 引入static文件
* @param {array|string} 相對路徑
* @param {string} 當(dāng)前執(zhí)行腳本所在的路徑__FILE__
*
*/
function import_static($files, $path=NULL){
// 更改當(dāng)前腳本的執(zhí)行路徑
$old_dir = getcwd();
$tmp_dir = (isset($path)) ? dirname($path): dirname(__FILE__);
chdir($tmp_dir);
// 整理包含文件
if (!is_array($files)) {
$tmp = array();
$tmp[] = $files;
$files = $tmp;
}
// 發(fā)送頭信息
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);
}
// 改回當(dāng)前腳本的執(zhí)行路徑
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>即可引入。
產(chǎn)品上線前,使用批處理文件進行處理,主要做兩方面的工作
1.將"*.js.php"輸出到"*.js"文件,并刪除"*.js.php"。命令行:php *.js.php > *.js
2.將HTML頁面中對"*.js.php"的引用替換為"*.js"。preg_replace()
PS:import_static函數(shù)解決了PHP中include()處理相對路徑的問題。
以上就是本文的全部內(nèi)容了,更詳細的信息請期待后續(xù)文章
相關(guān)文章
PHP/Laravel如何通過經(jīng)緯度計算距離獲取附近商家
實際開發(fā)中,常常需要獲取用戶附近的商家,本文給大家分享PHP/Laravel通過經(jīng)緯度計算距離獲取附近商家,感興趣的朋友一起看看吧2023-11-11
詳解PHP中instanceof關(guān)鍵字及instanceof關(guān)鍵字有什么作用
這篇文章主要介紹了PHP中instanceof關(guān)鍵字詳解及instanceof關(guān)鍵字有什么作用的相關(guān)資料,需要的朋友可以參考下2015-11-11
laravel框架創(chuàng)建授權(quán)策略實例分析
這篇文章主要介紹了laravel框架創(chuàng)建授權(quán)策略,結(jié)合實例形式分析了laravel框架創(chuàng)建授權(quán)策略的相關(guān)步驟、實現(xiàn)方法與操作注意事項,需要的朋友可以參考下2019-11-11
PHP register_shutdown_function()函數(shù)的使用示例
這篇文章主要介紹了PHP register_shutdown_function()函數(shù)的使用示例,當(dāng)我們的腳本執(zhí)行完成或者意外死掉導(dǎo)致 php 執(zhí)行即將關(guān)閉時,register_shutdown_function()這個函數(shù)會被調(diào)用,需要的朋友可以參考下2015-06-06
Yii 框架應(yīng)用(Applications)操作實例詳解
這篇文章主要介紹了Yii 框架應(yīng)用(Applications)操作,結(jié)合實例形式詳細分析了Yii 框架應(yīng)用(Applications)基本配置、屬性、事件相關(guān)操作技巧與注意事項,需要的朋友可以參考下2020-05-05

