집 >백엔드 개발 >PHP 튜토리얼 >콤보 스크립트는 타오바오를 모방한 스크립트를 자동으로 병합/압축합니다.
콤보 스크립트는 타오바오를 모방한 스크립트를 자동으로 병합/압축합니다.
WBOY원래의
2016-07-25 09:02:17918검색
콤보 스크립트는 자동으로 스크립트를 병합/압축합니다.
전체 코드 다운로드:
http://www.ctdisk.com/file/9402163
스크립트 사용법:
- php5 이상이 필요합니다.
- 프로그램이 로컬 파일을 찾을 수 없으면 지정된 CDN으로 이동하여 동일한 이름의 파일을 찾습니다.
- 프로그램은 자동으로 -min 파일을 소스 파일로 이스케이프하므로 -min 파일과 원본 파일이 쌍으로 나타나야 한다는 점에 동의해야 합니다.
- 콤보.php 및 minify.php에서 $YOUR_CDN 변수를 정의해야 합니다.
- 로컬 파일을 병합하고 압축하기만 하면 $YOUR_CDN 변수를 재설정할 필요가 없습니다.
- tbcdn의 개발 환경을 시뮬레이션하기 위해 cb.php가 제공됩니다. apache의 구성은 cb.php에 있습니다.
파일 병합
- http://yourdomain.com/combo.php?app/js/1.js&app/js/2.js
병합 압축
- http://yourdomain.com/minify.php?app/js/1.js&app/js/2.js
Taobao CDN 시뮬레이션
- http://a.tbcdn.cn/??1.js,2.js
- http://a.tbcdn.cn/subdir/??1/js,2.js
파일 목록:
- 콤보.php는 압축하지 않고 파일을 결합합니다.
- minify.php는 압축 파일을 병합합니다.
- cssmin.php CSS 압축
- jsmin.php 압축 js
- Taobao CDN 병합 파일 전략의 cb.php 시뮬레이션
CSS 예시
js 예
PHP 파일 인코딩은 utf-8을 균일하게 사용합니다.
/* 압축*/
$MINIFY = true;
/* 기본 CDN 주소*/
$YOUR_CDN = 'http ://a.tbcdn.cn/';
require 'jsmin.php';
require 'cssmin.php';
/**
* 전자태그 캐시 설정
*/
함수 캐시 ($etag){
$etag = $etag; //태그 문자열, 임의로 수정 가능
if ($_SERVER['HTTP_IF_NONE_MATCH'] == $etag){
header('Etag:' .$etag,true,304);
종료;
}
else header('Etag:'.$etag);
}
function get_contents($url){ <…
cur_close($ch);
if ($str !==false) {
return $str;
}else {
return '';
}
}
//확장자 가져오기
function get_extend($file_name) {
$extend =explode("." , $file_name)
$va=count($extend)-1 ;
return $extend[$va];
}
/**
* 논리 시작
*/
$files = array();
//존재하는 각 파일 CDN 가능한 파일 형식
$header = array(
'js' => 'Content-Type: application/x-javascript',
'css' => 'Content-Type: text/ css',
'jpg' => '콘텐츠 유형: 이미지/jpg',
'gif' => '콘텐츠 유형: 이미지/gif',
'png' => '콘텐츠 유형: 이미지/png',
'jpeg' => '콘텐츠 유형: 이미지/jpeg',
'swf' => '
);
$type = '';
foreach ($_GET as $k => $v) {
//가장 일반적인 교체 규칙
$k = preg_replace(
array('/_(js|css|gif|png|jpg|jpeg|swf)$/','/yui/2_8_0r4/','/yui/3_0_0/','/(d )_( d )_(d )/','/(d )_(d )/','/_v(d)/'),