<?php
/*
* Tangram
* Copyright 2009 Baidu Inc. All rights reserved.
*
* path: import.php
* author: berg
* version: 1.0
* date: 2010/07/18 23:57:52
*
* @fileoverview * import.js的php版本
* 接受一个f参数,格式和import.js相同,自动合并js并输出
* 此外,接受一个path参数,用逗号分隔,如果在当前目录下找不到需要的js文件,会依次去path目录找
* 此外,本脚本支持引入一个包所有文件(其实也就是一个目录下的所有js文件,**不递归**)
* IE下,get请求不能超过2083字节,请注意。
*/
//$DEBUG = true;
$DEBUG = false;
$MATCHED = array();
$IMPORTED = array();
if(isset($_GET['path'])){
$PATH = explode(',', $_GET['path']);
}else{
$PATH = array();
}
echo importTangram(explode(',', $_GET['f']), false);
// 无敌旋转分隔线
function importTangram($files, $returnFile = true){
global $MATCHED, $DEBUG, $IMPORTED;
$output = "";
if(is_string($files)){
$files = array($files);
}else if(!is_array($files)){
return $output;
}
if($DEBUG)
var_dump($files);
foreach($files as $file){
if(strrpos($file, '*')){
$output .= importTangram(getPackage(str_replace(array(".", '*'), array('/', ''), $file)));
}elseif(in_array($file, $IMPORTED)){
continue;
}else{
$IMPORTED[] = $file;
// echo "file name:".$file."\n";
$file = str_replace(".", '/', $file) . ".js";
// echo "file name:".$file."\n";
// echo "\n";
if($DEBUG)
echo "Importing: " . $file . ", returnFile $returnFile\n";
if(!in_array($file, $MATCHED)){
$content = file_get_contents(getRealFilePath($file));
if(!$content){
if($DEBUG)
echo "no content... \n;";
continue;
}
$MATCHED[] = $file;
$matches = array();
//去掉注释
$content = trim(preg_replace("/\/\*(.*?)\*\//ies", "", $content));
$output .= preg_replace("/\/\/\/import\s+([\w\-\$]+(\.[\w\-\$]+)*);?/ies", "importTangram('\\1')", $content);
}
}
}
return $output;
}
function getRealFilePath($filename){
global $PATH;
$path = $PATH;
//把当前目录放到最前面
array_unshift($path, "./");
//echo $filename."\n";
foreach($path as $eachPath){
if(@file_exists($eachPath . $filename)){
return $eachPath . $filename;
}
}
//如果从path里面找不到,就去上级目录的tangram中找
//为tangram component提供
return "../../tangram/src/". $filename;
}
function getPackage($packagePath){
$files = array();
//echo "package Path:".$packagePath."\n";
if ($handle = opendir(getRealFilePath($packagePath))) {
while ($file = readdir($handle)) {
if(strrpos($file, ".js") && substr($file,0,1) != ".")
$files[] = substr($packagePath . $file, 0, -3); //把最后的.js去掉,适应importTangram的输入
}
// print_r($files);
closedir($handle);
}
return $files;
}
没有合适的资源?快使用搜索试试~ 我知道了~
Tangram Library 百度js库tangram开源.zip
共377个文件
js:369个
php:2个
readme:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 184 浏览量
2022-11-19
23:34:30
上传
评论
收藏 576KB ZIP 举报
温馨提示
Tangram Library 百度js库tangram开源.zip
资源推荐
资源详情
资源评论
收起资源包目录
Tangram Library 百度js库tangram开源.zip (377个子文件)
README.bak 238B
tangram-1.3.3.source.js 266KB
tangram-1.3.3.source.js 266KB
tangram-1.3.3.core.source.js 108KB
tangram-1.3.3.js 66KB
tangram-1.3.3.js 66KB
query.js 28KB
DatePicker.js 24KB
tangram-1.3.3.core.js 23KB
Suggestion.js 11KB
Dialog.js 10KB
Menubar.js 10KB
Carousel.js 10KB
Modal.js 9KB
Pager.js 8KB
Slider.js 8KB
Table$select.js 8KB
request.js 7KB
Combox.js 7KB
import.js 7KB
import.js 7KB
createHTML.js 7KB
Suggestion$input.js 7KB
statable.js 7KB
fire.js 7KB
ItemSet.js 6KB
drag.js 6KB
Table.js 6KB
Input.js 6KB
textOverflow.js 5KB
SmartPosition.js 5KB
element.js 5KB
Popup.js 5KB
scale.js 5KB
createPopup.js 5KB
getPosition.js 5KB
smartCover.js 5KB
Tooltip.js 5KB
Row.js 5KB
Event.js 5KB
create.js 4KB
stringify.js 4KB
draggable.js 4KB
Table$page.js 4KB
ready.js 4KB
form.js 4KB
Timeline.js 4KB
Button.js 4KB
Carousel$table.js 4KB
switchable.js 3KB
Base.js 3KB
create.js 3KB
ProgressBar.js 3KB
Tab.js 3KB
mask.js 3KB
Menubar$hover.js 3KB
Suggestion$fixWidth.js 3KB
Table$edit.js 3KB
parse.js 3KB
highlight.js 3KB
createUI.js 3KB
StarRate.js 3KB
getTransition.js 3KB
DataSource.js 3KB
droppable.js 3KB
createStyleSheet.js 3KB
q.js 2KB
getStyle.js 2KB
callByServer.js 2KB
Table$title.js 2KB
Carousel$scrollByItem.js 2KB
Slider$progressBar.js 2KB
Accordion$fx.js 2KB
Decorator.js 2KB
EventArg.js 2KB
ajax.js 2KB
insertHTML.js 2KB
toHalfWidth.js 2KB
shake.js 2KB
confirm.js 2KB
createClass.js 2KB
Dialog$keyboard.js 2KB
format.js 2KB
sio.js 2KB
Accordion.js 2KB
Menubar$click.js 2KB
draggable.js 2KB
callByBrowser.js 2KB
un.js 2KB
expand.js 2KB
on.js 2KB
formatColor.js 2KB
filterFormat.js 2KB
setRaw.js 2KB
setBorderBoxStyles.js 2KB
alert.js 2KB
Class.js 2KB
_wrapFunction.js 2KB
setStyle.js 2KB
opacity.js 2KB
共 377 条
- 1
- 2
- 3
- 4
资源评论
易小侠
- 粉丝: 6453
- 资源: 9万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功