Welcom to 评论 - lizhenqiu blog!
#2167
#2168
$t1 = microtime(true); // ... 执行代码 ... $t2 = microtime(true); echo '耗时'.round($t2-$t1,3).'秒';
#2169
<?php $arr = array('a','b','c','d'); $result = array(); $t = getCombinationToString($arr, 4); print_r($t); function getCombinationToString($arr, $m) { if ($m ==1) { return $arr; } $result = array(); $tmpArr = $arr; unset($tmpArr[0]); for($i=0;$i<count($arr);$i++) { $s = $arr[$i]; $ret = getCombinationToString(array_values($tmpArr), ($m-1), $result); foreach($ret as $row) { $result[] = $s . $row; } } return $result; }
#2170
<?php $source = array('pll','我','爱','你','嘿'); sort($source); //保证初始数组是有序的 $last = count($source) - 1; //$source尾部元素下标 $x = $last; $count = 1; //组合个数统计 echo implode(',', $source), "<br>"; //输出第一种组合 while (true) { $y = $x--; //相邻的两个元素 if ($source[$x] < $source[$y]) { //如果前一个元素的值小于后一个元素的值 $z = $last; while ($source[$x] > $source[$z]) { //从尾部开始,找到第一个大于 $x 元素的值 $z--; } /* 交换 $x 和 $z 元素的值 */ list($source[$x], $source[$z]) = array($source[$z], $source[$x]); /* 将 $y 之后的元素全部逆向排列 */ for ($i = $last; $i > $y; $i--, $y++) { list($source[$i], $source[$y]) = array($source[$y], $source[$i]); } echo implode(',', $source), "<br>"; //输出组合 $x = $last; $count++; } if ($x == 0) { //全部组合完毕 break; } } echo 'Total: ', $count, "\n";
#2171
print “a”,vbcrlf,“b”; _ "c"
#2172
do until rs.eof strnewpath=strpath & rs.filed("日期") & "_" & "第"& i & "个文件" open "d:\data.txt" for output as i print #hfile,rs.getstring close i=i+1 rs.movenext loop
#2173
<div>我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox</div> <div limit="10" >我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox</div> <div limit="5" >我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox</div> <div limit="2" >我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox</div> <div >我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox</div> <div limit="20" >我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox</div> <div limit="100" >我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox</div> <div>我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox</div>
var limit=[]; var Text=[]; var Pox=document.getElementsByTagName('*'); for(var i=0;i<Pox.length;i++){ if(Pox[i].getAttribute("limit")){ limit[i]=Pox[i].getAttribute("limit"); Text[i]=Pox[i].innerHTML; if(limit[i]<Text[i].length){ Pox[i].innerHTML=Text[i].substring(0,limit[i])+"..."; } } }
<script type="text/javascript"> window.onload=function(){ (function limit(){ var limit=[]; var Text=[]; var Pox=document.getElementsByTagName('*'); for(var i=0;i<Pox.length;i++){ if(Pox[i].getAttribute("limit")){ limit[i]=Pox[i].getAttribute("limit"); Text[i]=Pox[i].innerHTML; if(limit[i]<Text[i].length){ Pox[i].innerHTML=Text[i].substring(0,limit[i])+"..."; } } } }()); } </script>
#2174
网页可见区域宽: document.body.clientWidth 网页可见区域高: document.body.clientHeight 网页可见区域宽: document.body.offsetWidth (包括边线的宽) 网页可见区域高: document.body.offsetHeight (包括边线的高) 网页正文全文宽: document.body.scrollWidth 网页正文全文高: document.body.scrollHeight 网页被卷去的高: document.body.scrollTop 网页被卷去的左: document.body.scrollLeft 网页正文部分上: window.screenTop 网页正文部分左: window.screenLeft 屏幕分辨率的高: window.screen.height 屏幕分辨率的宽: window.screen.width 屏幕可用工作区高度: window.screen.availHeight 屏幕可用工作区宽度: window.screen.availWidth <script language="javascript"> function screenInfo(){ var s = ""; s += "\r\n网页可见区域宽:"+ document.body.clientWidth; s += "\r\n网页可见区域高:"+ document.body.clientHeight; s += "\r\n网页可见区域宽:"+ document.body.offsetWidth +" (包括边线的宽)"; s += "\r\n网页可见区域高:"+ document.body.offsetHeight +" (包括边线的宽)"; s += "\r\n网页正文全文宽:"+ document.body.scrollWidth; s += "\r\n网页正文全文高:"+ document.body.scrollHeight; s += "\r\n网页被卷去的高:"+ document.body.scrollTop; s += "\r\n网页被卷去的左:"+ document.body.scrollLeft; s += "\r\n网页正文部分上:"+ window.screenTop; s += "\r\n网页正文部分左:"+ window.screenLeft; s += "\r\n屏幕分辨率的高:"+ window.screen.height; s += "\r\n屏幕分辨率的宽:"+ window.screen.width; s += "\r\n屏幕可用工作区高度:"+ window.screen.availHeight; s += "\r\n屏幕可用工作区宽度:"+ window.screen.availWidth; alert(s); } </script>
#2175
<?php //mt_rand 获取随机数 mt_rand(min, max); $str="abcdefghijkmnpqrstuvwxyz0123456789ABCDEFGHIGKLMNPQRSTUVWXYZ";//设置被随机采集的字符串 $codeLen='5';//设置生成的随机数个数 function str_rand($str,$codeLen){ $rand=""; for($i=0; $i<$codeLen-1; $i++){ $rand .= $str[mt_rand(0, strlen($str)-1)]; //如:随机数为30 则:$str[30] } return $rand; } $code=str_rand($str,$codeLen);
#2176
<?php // 创建画布 $width = 120; // 规定画布的宽高 $height = 45; $image = imagecreatetruecolor($width, $height); // 创建一幅真彩色图像 // 添加一些即将用到的颜色 $white = imagecolorallocate($image, 0xf2, 0xec, 0xe0); $orange = imagecolorallocate($image, 0xff, 0xa5, 0x4c); // 对画布背景填充颜色 imagefill($image, 0, 0, $white); //mt_rand 获取随机数 mt_rand(min, max); function str_rand(){ $str="abcdefghijkmnpqrstuvwxyz0123456789ABCDEFGHIGKLMNPQRSTUVWXYZ"; $rand=""; for($i=0; $i<5; $i++){//获取5个随机的字符串 $rand .= $str[mt_rand(0, strlen($str)-1)]; //如:随机数为30 则:$str[30] } return $rand; } $verifyCode=str_rand(); // 画一串字符串在画布上 imagestring($image, 10, 10, 10, "$verifyCode", $orange); // 通知浏览器输出的是图像(png类型) header('Content-Type: image/png'); // 输出到浏览器 imagepng($image); // 释放图像资源
#2177
<style> .case,.case img{ height:254px; transition:all 1s ease 0s; width:394px; overflow:hidden; } .case img:hover{ transform:scale(2,2); -ms-transform:scale(2,2); /* IE 9 */ -moz-transform:scale(2,2); /* Firefox */ -webkit-transform:scale(2,2);/* Safari 和 Chrome */ -o-transform:scale(2,2); /* Opera */ /*transform:rotate(360deg);*/ } </style> <div class="case"> <img src="http://li.img.pan.lizhenqiu.com/f9fb4f79f59fad81f092f0d18265d759.jpg" /> </div>
#2178
/** * 获取时间戳 * $Ymd = Y 年 * $Ymd = m 月 * $Ymd = d 日 * $Ymd = NULL 当前时间戳 * $xia = true 是否取下次开始时间戳:取下年开始时间戳 或者下月开始时间戳 或者明日开始时间戳 */ function getTime($Ymd=NULL,$xia=false){ if($Ymd=='Y' && $xia==true){ //取下个年度开始时间戳 return strtotime((date('Y',time())+1).'-01-01 00:00:00'); } else if($Ymd=='Y'){ //取本年度开始时间戳 return strtotime(date('Y',time()).'-01-01 00:00:00'); } else if($Ymd=='m' && $xia==true){ //取下个月度开始时间戳 $xiayue_nianfen = date('Y',time()); $xiayue_yuefen = date('m',time()); if($xiayue_yuefen==12){ $xiayue_nianfen += 1; //如果月份等于12月,那么下月年份+1 $xiayue_yuefen = 1; //如果月份等于12月,那么下月月份=1月 } else{ $xiayue_yuefen += 1; //如果月份不是12月,那么在当前月份上+1 } return strtotime($xiayue_nianfen.'-'.$xiayue_yuefen.'-01 00:00:00'); } else if($Ymd=='m'){ //取本月度开始时间戳 return strtotime(date('Y-m',time()).'-01 00:00:00'); } else if($Ymd=='d' && $xia==true){ //取明日开始时间戳 return strtotime(date('Y-m-d',time()).' 00:00:00')+86400; } else if($Ymd=='d'){ //取今日开始时间戳 return strtotime(date('Y-m-d',time()).' 00:00:00'); } else{ //取当前时间戳 return time(); } }
getTime('Y'); //当前年的时间戳 getTime('m'); //当前月的时间戳 getTime('d'); //当前日的时间戳 getTime('Y',true); //明年的时间戳 getTime('m',true); //下月的时间戳 getTime('d',true); //明日的时间戳 getTime(); //当前的时间戳
#2179
//判断电脑或手机访问 function is_mobile(){ $user_agent = $_SERVER['HTTP_USER_AGENT']; $mobile_agents = Array("240x320","acer","acoon","acs-","abacho","ahong","airness","alcatel","amoi","android","anywhereyougo.com","applewebkit/525","applewebkit/532","asus","audio","au-mic","avantogo","becker","benq","bilbo","bird","blackberry","blazer","bleu","cdm-","compal","coolpad","danger","dbtel","dopod","elaine","eric","etouch","fly ","fly_","fly-","go.web","goodaccess","gradiente","grundig","haier","hedy","hitachi","htc","huawei","hutchison","inno","ipad","ipaq","ipod","jbrowser","kddi","kgt","kwc","lenovo","lg ","lg2","lg3","lg4","lg5","lg7","lg8","lg9","lg-","lge-","lge9","longcos","maemo","mercator","meridian","micromax","midp","mini","mitsu","mmm","mmp","mobi","mot-","moto","nec-","netfront","newgen","nexian","nf-browser","nintendo","nitro","nokia","nook","novarra","obigo","palm","panasonic","pantech","philips","phone","pg-","playstation","pocket","pt-","qc-","qtek","rover","sagem","sama","samu","sanyo","samsung","sch-","scooter","sec-","sendo","sgh-","sharp","siemens","sie-","softbank","sony","spice","sprint","spv","symbian","tablet","talkabout","tcl-","teleca","telit","tianyu","tim-","toshiba","tsm","up.browser","utec","utstar","verykool","virgin","vk-","voda","voxtel","vx","wap","wellco","wig browser","wii","windows ce","wireless","xda","xde","zte"); $is_mobile = false; foreach ($mobile_agents as $device) { if (stristr($user_agent, $device)) { $is_mobile = true; break; } } return $is_mobile; }
//返回true或false is_mobile();
#2180
//下载,添加响应头信息 header('Content-type:application/octet-stream'); header('Content-Disposition:attachment;filename="'.basename($file).'"'); header('Content-Length:'.filesize($file)); readfile($file);
#2181
#2182
#2183
#2184
#2185
确定要清除编辑框内容吗?
该删除操作将不可恢复。
删除 取消
激活Windows
转到"设置"以激活Windows。
#2167
#2168
$t1 = microtime(true); // ... 执行代码 ... $t2 = microtime(true); echo '耗时'.round($t2-$t1,3).'秒';
简单说一下. microtime() 如果带个 true 参数, 返回的将是一个浮点类型. 这样 t1 和 t2 得到的就是两个浮点数, 相减之后得到之间的差. 由于浮点的位数很长, 或者说不确定, 所以再用个 round() 取出小数点后 3 位. 这样我们的目的就达到了~
#2169
解决问题:求一个含有N个元素的数组中取出M个元素组成新的数组,一共可以组合成的数组并输出
<?php $arr = array('a','b','c','d'); $result = array(); $t = getCombinationToString($arr, 4); print_r($t); function getCombinationToString($arr, $m) { if ($m ==1) { return $arr; } $result = array(); $tmpArr = $arr; unset($tmpArr[0]); for($i=0;$i<count($arr);$i++) { $s = $arr[$i]; $ret = getCombinationToString(array_values($tmpArr), ($m-1), $result); foreach($ret as $row) { $result[] = $s . $row; } } return $result; }
#2170
本文实例讲述了php求数组全排列,元素所有组合的方法。分享给大家供大家参考,具体如下:
<?php $source = array('pll','我','爱','你','嘿'); sort($source); //保证初始数组是有序的 $last = count($source) - 1; //$source尾部元素下标 $x = $last; $count = 1; //组合个数统计 echo implode(',', $source), "<br>"; //输出第一种组合 while (true) { $y = $x--; //相邻的两个元素 if ($source[$x] < $source[$y]) { //如果前一个元素的值小于后一个元素的值 $z = $last; while ($source[$x] > $source[$z]) { //从尾部开始,找到第一个大于 $x 元素的值 $z--; } /* 交换 $x 和 $z 元素的值 */ list($source[$x], $source[$z]) = array($source[$z], $source[$x]); /* 将 $y 之后的元素全部逆向排列 */ for ($i = $last; $i > $y; $i--, $y++) { list($source[$i], $source[$y]) = array($source[$y], $source[$i]); } echo implode(',', $source), "<br>"; //输出组合 $x = $last; $count++; } if ($x == 0) { //全部组合完毕 break; } } echo 'Total: ', $count, "\n";
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数组(Array)操作技巧大全》、《PHP数学运算技巧总结》、《php正则表达式用法总结》、《PHP+ajax技巧与应用小结》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
#2171
VbCrlf输出换行,书写代码断行 空格+_。
print “a”,vbcrlf,“b”; _ "c"
结果:
a
bc
#2172
do until rs.eof strnewpath=strpath & rs.filed("日期") & "_" & "第"& i & "个文件" open "d:\data.txt" for output as i print #hfile,rs.getstring close i=i+1 rs.movenext loop
#2173
先前用jq做了一个文字截断功能,但是不用jq的项目要实现此功能还要引如jq显得过于麻烦。这里写了一个js的文字截断功能。直接上代码。
HTML(测试用的):
<div>我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox</div> <div limit="10" >我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox</div> <div limit="5" >我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox</div> <div limit="2" >我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox</div> <div >我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox</div> <div limit="20" >我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox</div> <div limit="100" >我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox</div> <div>我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox我是pox</div>
JS:
var limit=[]; var Text=[]; var Pox=document.getElementsByTagName('*'); for(var i=0;i<Pox.length;i++){ if(Pox[i].getAttribute("limit")){ limit[i]=Pox[i].getAttribute("limit"); Text[i]=Pox[i].innerHTML; if(limit[i]<Text[i].length){ Pox[i].innerHTML=Text[i].substring(0,limit[i])+"..."; } } }
这里用getElementsByTagName获取所有节点遍历,if(Pox[i].getAttribute("limit"))筛选含有limit这个自定义属性的节点,然后获取各个节点自定义属性limit的值,将其放入limit数组中,把各个节点文字放入Text数组中,将需要截断的值和文本长度作比较,进行截断。
全部JS,这里写的自调:
<script type="text/javascript"> window.onload=function(){ (function limit(){ var limit=[]; var Text=[]; var Pox=document.getElementsByTagName('*'); for(var i=0;i<Pox.length;i++){ if(Pox[i].getAttribute("limit")){ limit[i]=Pox[i].getAttribute("limit"); Text[i]=Pox[i].innerHTML; if(limit[i]<Text[i].length){ Pox[i].innerHTML=Text[i].substring(0,limit[i])+"..."; } } } }()); } </script>
#2174
网页可见区域宽: document.body.clientWidth 网页可见区域高: document.body.clientHeight 网页可见区域宽: document.body.offsetWidth (包括边线的宽) 网页可见区域高: document.body.offsetHeight (包括边线的高) 网页正文全文宽: document.body.scrollWidth 网页正文全文高: document.body.scrollHeight 网页被卷去的高: document.body.scrollTop 网页被卷去的左: document.body.scrollLeft 网页正文部分上: window.screenTop 网页正文部分左: window.screenLeft 屏幕分辨率的高: window.screen.height 屏幕分辨率的宽: window.screen.width 屏幕可用工作区高度: window.screen.availHeight 屏幕可用工作区宽度: window.screen.availWidth <script language="javascript"> function screenInfo(){ var s = ""; s += "\r\n网页可见区域宽:"+ document.body.clientWidth; s += "\r\n网页可见区域高:"+ document.body.clientHeight; s += "\r\n网页可见区域宽:"+ document.body.offsetWidth +" (包括边线的宽)"; s += "\r\n网页可见区域高:"+ document.body.offsetHeight +" (包括边线的宽)"; s += "\r\n网页正文全文宽:"+ document.body.scrollWidth; s += "\r\n网页正文全文高:"+ document.body.scrollHeight; s += "\r\n网页被卷去的高:"+ document.body.scrollTop; s += "\r\n网页被卷去的左:"+ document.body.scrollLeft; s += "\r\n网页正文部分上:"+ window.screenTop; s += "\r\n网页正文部分左:"+ window.screenLeft; s += "\r\n屏幕分辨率的高:"+ window.screen.height; s += "\r\n屏幕分辨率的宽:"+ window.screen.width; s += "\r\n屏幕可用工作区高度:"+ window.screen.availHeight; s += "\r\n屏幕可用工作区宽度:"+ window.screen.availWidth; alert(s); } </script>
#2175
<?php //mt_rand 获取随机数 mt_rand(min, max); $str="abcdefghijkmnpqrstuvwxyz0123456789ABCDEFGHIGKLMNPQRSTUVWXYZ";//设置被随机采集的字符串 $codeLen='5';//设置生成的随机数个数 function str_rand($str,$codeLen){ $rand=""; for($i=0; $i<$codeLen-1; $i++){ $rand .= $str[mt_rand(0, strlen($str)-1)]; //如:随机数为30 则:$str[30] } return $rand; } $code=str_rand($str,$codeLen);
#2176
<?php // 创建画布 $width = 120; // 规定画布的宽高 $height = 45; $image = imagecreatetruecolor($width, $height); // 创建一幅真彩色图像 // 添加一些即将用到的颜色 $white = imagecolorallocate($image, 0xf2, 0xec, 0xe0); $orange = imagecolorallocate($image, 0xff, 0xa5, 0x4c); // 对画布背景填充颜色 imagefill($image, 0, 0, $white); //mt_rand 获取随机数 mt_rand(min, max); function str_rand(){ $str="abcdefghijkmnpqrstuvwxyz0123456789ABCDEFGHIGKLMNPQRSTUVWXYZ"; $rand=""; for($i=0; $i<5; $i++){//获取5个随机的字符串 $rand .= $str[mt_rand(0, strlen($str)-1)]; //如:随机数为30 则:$str[30] } return $rand; } $verifyCode=str_rand(); // 画一串字符串在画布上 imagestring($image, 10, 10, 10, "$verifyCode", $orange); // 通知浏览器输出的是图像(png类型) header('Content-Type: image/png'); // 输出到浏览器 imagepng($image); // 释放图像资源
备注:建议大家用mt_rand(),而不是rand(),前者效率更高
#2177
鼠标指上去,图片放大,鼠标离开图片恢复原样,并且有放大、缩小效果 查看效果演示
<style> .case,.case img{ height:254px; transition:all 1s ease 0s; width:394px; overflow:hidden; } .case img:hover{ transform:scale(2,2); -ms-transform:scale(2,2); /* IE 9 */ -moz-transform:scale(2,2); /* Firefox */ -webkit-transform:scale(2,2);/* Safari 和 Chrome */ -o-transform:scale(2,2); /* Opera */ /*transform:rotate(360deg);*/ } </style> <div class="case"> <img src="http://li.img.pan.lizhenqiu.com/f9fb4f79f59fad81f092f0d18265d759.jpg" /> </div>
#2178
函数代码:
/** * 获取时间戳 * $Ymd = Y 年 * $Ymd = m 月 * $Ymd = d 日 * $Ymd = NULL 当前时间戳 * $xia = true 是否取下次开始时间戳:取下年开始时间戳 或者下月开始时间戳 或者明日开始时间戳 */ function getTime($Ymd=NULL,$xia=false){ if($Ymd=='Y' && $xia==true){ //取下个年度开始时间戳 return strtotime((date('Y',time())+1).'-01-01 00:00:00'); } else if($Ymd=='Y'){ //取本年度开始时间戳 return strtotime(date('Y',time()).'-01-01 00:00:00'); } else if($Ymd=='m' && $xia==true){ //取下个月度开始时间戳 $xiayue_nianfen = date('Y',time()); $xiayue_yuefen = date('m',time()); if($xiayue_yuefen==12){ $xiayue_nianfen += 1; //如果月份等于12月,那么下月年份+1 $xiayue_yuefen = 1; //如果月份等于12月,那么下月月份=1月 } else{ $xiayue_yuefen += 1; //如果月份不是12月,那么在当前月份上+1 } return strtotime($xiayue_nianfen.'-'.$xiayue_yuefen.'-01 00:00:00'); } else if($Ymd=='m'){ //取本月度开始时间戳 return strtotime(date('Y-m',time()).'-01 00:00:00'); } else if($Ymd=='d' && $xia==true){ //取明日开始时间戳 return strtotime(date('Y-m-d',time()).' 00:00:00')+86400; } else if($Ymd=='d'){ //取今日开始时间戳 return strtotime(date('Y-m-d',time()).' 00:00:00'); } else{ //取当前时间戳 return time(); } }
调用代码:
getTime('Y'); //当前年的时间戳 getTime('m'); //当前月的时间戳 getTime('d'); //当前日的时间戳 getTime('Y',true); //明年的时间戳 getTime('m',true); //下月的时间戳 getTime('d',true); //明日的时间戳 getTime(); //当前的时间戳
#2179
函数代码:
//判断电脑或手机访问 function is_mobile(){ $user_agent = $_SERVER['HTTP_USER_AGENT']; $mobile_agents = Array("240x320","acer","acoon","acs-","abacho","ahong","airness","alcatel","amoi","android","anywhereyougo.com","applewebkit/525","applewebkit/532","asus","audio","au-mic","avantogo","becker","benq","bilbo","bird","blackberry","blazer","bleu","cdm-","compal","coolpad","danger","dbtel","dopod","elaine","eric","etouch","fly ","fly_","fly-","go.web","goodaccess","gradiente","grundig","haier","hedy","hitachi","htc","huawei","hutchison","inno","ipad","ipaq","ipod","jbrowser","kddi","kgt","kwc","lenovo","lg ","lg2","lg3","lg4","lg5","lg7","lg8","lg9","lg-","lge-","lge9","longcos","maemo","mercator","meridian","micromax","midp","mini","mitsu","mmm","mmp","mobi","mot-","moto","nec-","netfront","newgen","nexian","nf-browser","nintendo","nitro","nokia","nook","novarra","obigo","palm","panasonic","pantech","philips","phone","pg-","playstation","pocket","pt-","qc-","qtek","rover","sagem","sama","samu","sanyo","samsung","sch-","scooter","sec-","sendo","sgh-","sharp","siemens","sie-","softbank","sony","spice","sprint","spv","symbian","tablet","talkabout","tcl-","teleca","telit","tianyu","tim-","toshiba","tsm","up.browser","utec","utstar","verykool","virgin","vk-","voda","voxtel","vx","wap","wellco","wig browser","wii","windows ce","wireless","xda","xde","zte"); $is_mobile = false; foreach ($mobile_agents as $device) { if (stristr($user_agent, $device)) { $is_mobile = true; break; } } return $is_mobile; }
调用方式:
//返回true或false is_mobile();
#2180
//下载,添加响应头信息 header('Content-type:application/octet-stream'); header('Content-Disposition:attachment;filename="'.basename($file).'"'); header('Content-Length:'.filesize($file)); readfile($file);
#2181
作为安全部的人,利用漏洞秒抢月饼,我们做几个假设:
1)这四位宝宝知不知道这个行为是会被人发现的
2)这四位宝宝知不知道这个行为被发现后是会有什么样的后果
假如:
1.1宝宝们如果知道,这样的行为会受到这样的处罚,那么他们得到这样的处罚是应该的
1.2宝宝们如果不知道,会有那么严厉的惩罚,那么这个处罚结果对他们来说是严重的,或者出乎意料的,毕竟如果是不光彩的事要做的话,人越少越好,抢的量越少越好,但是从最终的结果看,四个人抢了一百多盒,其实他们更多的是把这个行为当做一个玩笑,但是这次是月饼,如果是其他的物品呢,会有什么样的后果,所以作为阿里有两个处理方式:
一是、四位宝宝支付100多盒月饼的钱(喜剧结果)二是、四位宝宝被开除(悲剧结果)
阿里选择了后者,这说明他们把这个事情看的还是比较恶劣的,也是告诉众人,不管是内部人还是外部人也好,都要遵守我定的规则,不遵守的话,后果是很严重的(当老大久了都这样)
但是我还是要为四位宝宝伸冤:
1.发现了漏洞,他们四人自己就去抢,而是没有让外部的人来做这个动作,说明他们本身对这个事情的定性就比较简单
2.四个宝宝作为安全部的人,能够发现漏洞,并利用漏铜,说明这四个宝宝技术还是过硬啊
所以这个处理结果:合里(阿里的里)不合情
#2182
#2183
#2184
#2185
公司做的月饼内卖页面肯定是交给技术,设想作为内卖页面,而且是中秋节临时上的,作为技术肯定只要满足基本需求就OK了,谁会像坐外部页面那样检查各种漏洞,毕竟技术每天处理各种需求,上班很忙,这种内卖页面肯定能简化的就简化,大家都是内部员工,只要几本需求就OK了。
所以不是漏洞不漏洞和技术简单还是复杂的问题。也跟geek精神一毛钱关系也没有。