//遍历节点 walkDom = function (el){ var c = el.firstChild; var retObj = {}; var array = []; while(c !== null){//这里只是返回了元素节点,没有节点就是个空数组 if(c.nodeType == 1){ array.push(walkDom(c)); } c = c.nextSibling; } retObj[el.tagName] = array; return retObj; }; //构建树形 createTree = function (tree){ var array = []; for(var key in tree){ array.push(‘<li><h3>’); array.push(key.toLowerCase()); array.push(‘</h3>’); if(tree[key].length != 0){ array.push(‘<ul>’
查看更多php递归删除指定目录及文件
function deldir($path){ if(!is_dir($path)){ return null; } $fh = opendir($path); while(($row = readdir($fh)) !== false){ if($row == ‘.’ || $row == ‘..’){ continue; } if(!is_dir($path.’/’.$row)){ unlink($path.’/’.$row); } deldir($path.’/’.$row); } closedir($fh); if(!rmdir($path)){ echo $path.’无权限删除<br>’; } return true; } deldir(“E:\del”);
查看更多php中ip获取与处理
ip转化为整数: ip2long(); 转化回来long2ip(); 百度IP接口api: http://developer.baidu.com/map/ip-location-api.htm /* 新浪IP接口 array (size=10) ‘ret’ => int 1 ‘start’ => string ‘106.120.0.0’ (length=11) ‘end’ => string ‘106.121.255.255’ (length=15) ‘country’ => string ‘中国’ (length=6) ‘province’ => string ‘北京’ (length=6) ‘city’ => string ‘北京’ (length=6) ‘district&
查看更多php小数点处理
$n = “10.6789”; //一、保留2位小数点,并四舍五入 //使用round()方法 echo round($n,2); echo “<br>”; //使用number_format()方法 echo number_format($n,2);echo “<br>”; //使用sprintf()方法 echo sprintf(“%.2f”,$n);echo “<br>”; //二、保留2位小数点,但不四舍五入 echo ((int)($n*100))/100;
查看更多linux中的copy
cp /data/www/ee.txt /data/www/admin/ee.txt 远程拷贝 scp /data/www/ee.txt www@10.10.10.16:/data/www/ee.txt scp 本地用户名 @IP 地址 : 文件名 1 远程用户名 @IP 地址 : 文件名 2 [ 本地用户名 @IP 地址 :] 可以不输入 , 可能需要输入远程用户名所对应的密码 . 可能有用的几个参数 : -v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接 , 认证 , 或是配置错误 . -C 使能压缩选项 . -P 选择端口 . 注意 -p 已经被 rcp 使用 . -4 强行使用 IPV4 地址 . -6 强行使用 IPV6 地址 .
查看更多lua面向对象编程之点号与冒号的差异详细比较
首先,先来一段在lua创建一个类与对象的代码 Class = {} Class.__index = Class function Class:new(x,y) local temp = {} setmetatable(temp, Class) temp.x = x temp.y = y return temp end function Class:test() print(self.x,self.y) end object = Class.new(10,20) object:test() 猜一下会输出什么结果呢? 输出: >lua -e “io.stdout:setvbuf ‘no’” “object.lua” 20 nil >Exit code: 0 我们的y值怎么没了? 这个原因很简单,因为我们创建一个对象的时候使用了一个 . 号 在lua程序设计第二版中,有提到当一项操作所作用的”接受者”,需要一个额外的参数来表示该接受者,这个参数通常称为self或this 然后我们在这段代码加上 self C
查看更多Lua中的元表和元方法
Lua中每个值都可具有元表。 元表是普通的Lua表,定义了原始值在某些特定操作下的行为。你可通过在值的原表中设置特定的字段来改变作用于该值的操作的某些行为特征。例如,当数字值 作为加法的操作数时,Lua检查其元表中的”__add”字段是否有个函数。如果有,Lua调用它执行加法。 我们称元表中的键为事件(event),称值为元方法(metamethod)。前述例子中的事件是”add”,元方法是执行加法的函数。 可通过函数getmetatable查询任何值的元表。 可通过函数setmetatable替换表的元表。不能从Lua中改变其他类型的元表(除了使用调试库);必须使用C API才能做到。 表和完整的用户数据具有独立的元表(尽管多个表和用户数据可共享元表);每种其他类型的所有值共享一个元表。所以,所有数字共享一个元表,字符串也是,等等。 元表可以控制对象的数学运算、顺序比较、连接、取长、和索引操作的行为。元表也能定义用户数据被垃圾收集时调用的函数。Lua给这些操作的每一个都 关联了称为事件的特定键。当Lua对某值执行其中一个操作时,检查该值
查看更多lua文件处理
一、文件读存: — 似乎不支持大文件(不能超过9k?) function FileSaveLoad() local file = io.open(“c:\\in.lua”, “r”); assert(file); local data = file:read(“*a”); — 读取所有内容 file:close(); file = io.open(“c:\\out.lua”, “w”); assert(file); file:write(data); file:close(); end FileSaveLoad(); 二、非循环表格处理: HERO = 1; MONSTER = 2; BUILDING = 3; SUMUNIT = 4; cha = {}; cha[1] = { basic = { Name = “农民”, –NPC名字 cha_type = HERO, –NPC模型 },
查看更多Lua中的数学库
Lua5.1中数学库的所有函数如下表: math.pi 为圆周率常量 = 3.14159265358979323846 abs 取绝对值 math.abs(-15) 15 acos 反余弦函数 math.acos(0.5) 1.04719755 asin 反正弦函数 math.asin(0.5) 0.52359877 atan2 x / y的反正切值 math.atan2(90.0, 45.0) 1.10714871 atan 反正切函数 math.atan(0.5) 0.463647609 ceil 不小于x的最大整数 math.ceil(5.8) 6 cosh 双曲线余弦函数 math.cosh(0.5) 1.276259652 cos 余弦函数 math.cos(0.5) 0.87758256 deg 弧度转角度 math.deg(math.pi) 180 exp 计算以e为底x次方值 math.exp(2) 2.718281828 floor 不大于x的最大整数 math.floor(5.6) 5 fmod (mod) 取模运算 math.mod(14, 5) 4 frexp
查看更多Lua中的操作系统库
这个库通过表os实现 os.clock () 功能:返回一个程序使用CPU时间的一个近似值 例如: local x = os.clock(); print(os.clock()) local s = 0; for i = 1, 100000000 do s = s + i; end print(string.format(“elapsed time : %.2f\n”, os.clock() – x)); 输出: 0 elapsed time : 2.55 ——————————————————————————– os.date ([format [, time]]) 功能:返回一个按format格式化日期、时间的字串或表 若设置ti
查看更多