11
2017
12

js 数组的全排列算法

function doCombination(arr) { var count = arr.length - 1; //数组长度(从0开始) var tmp = []; var totalArr = [];// 总数组 return doCombinationCallback(arr, 0);//从第一个开始 //js 没有静态数据,为了避免和外部数据混淆,需要使用闭包的形式 function doCombinationCallback(arr, curr_index
10
2017
11

php中self,this, parent 详解

1、前言 self,this,parent 这三个关键字在 类的使用中可谓屡见不鲜,那么这三个关键字又有什么区别; 从字面意思理解: this  是指向当前类(就近原则,离谁近跟谁) self  是指向当前类(一般是静态变量,静态方法用,指本身) parent是指向父类(php是单继承,父类也就只有一个) 2、this 关键字 测试类如下: declare (str
30
2017
10

PHP 引用变量

1、引用变量的定义 在PHP 中引用的意思是:不同的名字访问同一个变量内容.使用&表示 使用 & 会使(如$a = &$b)指向同一个内存地址(这并不像 C 的指针:例如你不能对他们做指针运算,他们并不是实际的内存地址),一个发生改变,另一个也会发生改变 2、使用 memory_get_usage() 函数观察内存的变化 2.1、不使用 & 因为PHP 中COW(Copy On 
20
2017
10

php递归创建文件夹的两种方法

1、前言 php中 mkdir 只能创建一个目录(一级)而对于多级目录(创建一级目录时上级目录不存在)就会创建失败。所以在不确定目录级数的时候,我们就需要使用类似一级一级目录的检测,已保证目录创建成功; 递归创建目录的思路: 首先判断 dirname 是否是目录,如果是则尝试创建; 如果失败,则尝试创建上一级目录,使用上一级目录继续 调用本身方法; 2、采用分割目录的方法创建目录
09
2017
10

两数交换的3种方法

1、前言 两数交换的方法和种类很多,平时也经常会用到,特别是在比较两数大小的时候。下面就介绍集中常用的两数交换的方法。 2、引人第三个变量 function swap1($a, $b) { $temp = $b; $b = $a; $a = $temp; } 好处就是简单,不需要太多的操作,毕竟执行时间短,占用内存就不要在意了 3、异或方法 function swap2($a, $b) {
17
2017
09

实现一维数组的排列组合

1、前言 如何对(任意个)一维索引数组的所有值进行排列组合,使之列出所有的组合情况。 2、例子 本次使用的例子数组是: $arr = array(array('你','我','他'),array('们是','是'),array('人','神','魔')); 结果显示: 3、代码实现 function getArrSet($arr, $curr_index = -1) { static
05
2017
09

PHP设计模式-单例模式

1、前言 单例模式有3个特点: 私有静态属性,又来储存生成的唯一对象 私有构造函数 公共静态方法,用来访问静态属性储存的对象,如果没有对象,则生成此单例 私有克隆函数,防止克隆——clone(这个不是特点,只是出于安全) 那么为什么使用单例模式:        PHP一个主要应用场合就是应用程序与数据库打交
29
2017
08

js数组去重

1、前言 去重方法千千万万,你要哪一种 2、es系列方法 es6 Set()方法 介绍:ES6提供了新的数据结构Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 Set函数可以接受一个数组(或类似数组的对象)作为参数,用来初始化 new Set(test);//test为去重的数组 es7 includes Array.prototype.includes方法返回一个布尔值,表示
22
2017
08

excel的导出和下载

1、前言 有时需要将数据库表资源导出excel,做成一些报表数据。 而php导出excel的方法大致有几种:  使用php的类库,进行导出,如PHPExcel 使用php原生的方法进行导出 而本文介绍的就是,如何通过原生方法导出excel 2、关键函数 2.1、ob输出 ob_start(); ob_get_cont
17
2017
08

利用 fsockopen() 函数开放端口扫描器

1、前言 本文利用 fsockopen() 函数,编写一个功能简单的端口扫描器。 2、关键技术 本实例的端口号是固定的,通过对数组的遍历,利用 fsockopen() 函数连接,如果连接成功,则该端口处于开放状态,否则该端口处于关闭状态。 核心代码如下: foreach ($port as $key => $value) { echo '<tr>'; echo '<td>' . $ke