Linux下查看TCP连接的状态的shell命令 2018-3-26

netstat -n|awk '/^tcp/{++S[$NF]} END {for(a in S) print a,S[a]}' 统计当前TCP连接各种状态下的数量. TIME_WAIT 205 ESTABLISHED 8474 遇到这种复杂的组合Shell脚本,基本方法是把它切分,一步步来观察,这样便于理解。 第一步:netstat -n ,这个我们可以单独在命令行下去执行的看下,得到的是一个列表, -n 表示以数字形式显示端口号 第二步:netstat -n|awk ‘/^tcp/ {print $NF}’ , 这个去执行的看下,得到的是一个列表, 是把所有上一个列表包含tcp的过滤出来,同时打印出了$NF这个字段,然后可能我们不懂$NF 是什么,你去查下呀,就知道了,这是当前记录里域个数,比方说我们用 netstat -n|awk ‘/^tcp/ {print $1...
浏览:2293 分类:练习 详请

奇怪的问题?php数组引用后值发生改变 2018-3-23

<?php $items = array('a','b','c');  foreach($items as &$item){     $item .= '4';  }  foreach($items as $item){     echo $item,PHP_EOL;  } 输出的结果是a4,b4,b4而非a4,bc4,c4为什么呢? 因为在第一个fro次循环最终结束后,$item的值为&items[2]。 而在第二个循环时,由于再次用了$item这个变量,会有变化: 第1次时,$item(即$itmes[2])的值成了$items[0],即a4,此时数组为('a4','b4','a4'); 第2次时,$item(即$items[2])的值成了$i...
浏览:1320 分类:练习 详请

用PHP如何实现startsWith() 2018-3-23

<?php function startsWith($haystack, $needle) { return $needle === "" || strpos($haystack, $needle) === 0; }
浏览:1686 分类:练习 详请

找出一组数据中差值分别为最多及最小的的两个数 2018-3-23

本题解题思想: 排序必然是第一步,排完序之后,数组两端的基本就是相差最大的一组数据。 而相差最小的,就要把相邻的两个数组依次去相减,最后找到结果最小的一组即是答案 <?php $r = [100,20,90,40,10,50,70,88,25.6,16]; foreach($r as &$v){ foreach($r as &$j){ if($v >= $j){ $tmp = $v; $v = $j; $j = $tmp; } } } print_r($r); $max_arr = [$r[0], $r[count($r)-1]]; echo 'max:',$r[0],'-' - $r[count($r)-1],'=',$r[0] - $r[count($r)-1]; echo PHP_EOL; $min = 0; unset($v); // ...
浏览:1726 分类:练习 详请

不使用+运算符,编写一个函数,将2个数字相加 2018-3-23

分析:这又是一道考察发散思维的很有意思的题目。当我们习以为常的东西被限制使用的时候,如何突破常规去思考,就是解决这个问题的关键所在。 看到的这个题目,我的第一反应是傻眼了,四则运算都不能用,那还能用什么啊?可是问题总是要解决的,只能打开思路去思考各种可能性。首先我们可以分析人们是如何做十进制的加法的,比如是如何得出5+17=22这个结果的。实际上,我们可以分成三步的:第一步只做各位相加不进位,此时相加的结果是12(个位数5和7相加不要进位是2,十位数0和1相加结果是1);第二步做进位,5+7中有进位,进位的值是10;第三步把前面两个结果加起来,12+10的结果是22,刚好5+17=22。 前面我们就在想,求两数之和四则运算都不能用,那还能用什么啊?对呀,还能用什么呢?对数字做运算,除了四则运算之外,也就只剩下位运算了。位运算是针对二进制的,我们也就以二进制再来分析一下前面的三步走策略对...
浏览:1409 分类:练习 详请