- 博客(31)
- 资源 (5)
- 收藏
- 关注
原创 【DAY.10】php判断18位身份账号码是否正确(基于加权算法)
思路:18位身份证号码,前17位配合加权因子加权求和,在通过取模11,获取校验码所在的key,最后匹配第18位与所取得的key是否相符,来判断是否符合注意点:函数录入变量时,如果类型为整形,php为自动转化为浮点型,造成后面操作错误源码function isIdcard($number){ //如果变量输入为数字,会自动转化为浮点型,下面操作也就无意义了 if(gettype(
2017-03-07 20:24:11 668
原创 【DAY.9】php随机打乱数组顺序(洗牌算法实现)
目标:在不调用任何PHP内置函数的前提下,把一个数组顺序随机打乱,变相的洗牌算法。思路:遍历数组,每一个元素都与另一个随机$key元素进行位置交换,关键在于随机$key的实现,马上就能调用的外部随机数,我只想到了时间戳和微秒数,就采取了截取微秒来生成随机$key,下面是相关代码。/*随机打乱数组顺序,不是调用任何PHP内置随机函数 */ error_reporting(0);
2017-03-06 20:46:35 2796
原创 【DAY.8】PHP数据结构与算法_排序_希尔排序
希尔排序:基于插入排序基础上分治后的排序方法,将数组按照一定间隔分成若干组,分别进行插入排序,最后组合成一个总的分组,再进行一次插入排序,优点在于减少交换次数(不是每次都循环整个数组)。 $arr = array(3,9,4,1,7,10,12,321,8,5,2,6); /** * [shellsort 希尔排序] * @param [typ
2016-12-20 20:23:15 757
原创 php会话控制[3]-SESSION
1.基础知识session同cookie一样,都可以延展会话控制,通过存储用户信息来跟踪访问动作,不同的是,cookie是把信息存储在客户端,session把信息存储在服务器,只在客户端存储了sessionid(),来对接session信息。2.基本流程1.浏览器访问服务器2.服务器session_start(),初始化session,生成sessionid,在服务器中生成文件
2016-12-15 16:23:03 1105
原创 【DAY.7】PHP数据结构与算法_排序_堆排序
堆排序:通过形成大顶堆来实现排序。思路:两层循环,内循环,将最大元素循环调整堆顶,外循环,将堆顶元素弹出,插入到新数组,难点在内循环,定位到最后一个非叶子节点(通过右位移方法),设为标志位,比较该节点与子节点的大小,小于子节点就更换位置,递减标志位,遍历所有非叶子节点,使最大元素换到堆顶位置 $arr = array(3,9,4,1,7,10,8,5,2,6); /**
2016-12-14 17:36:09 1067
原创 【DAY.6】PHP数据结构与算法_排序_归并排序
概念:归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。
2016-11-19 18:04:06 1445
原创 php会话控制[2]-COOKIE
1.官方说法PHP 透明地支持 HTTP cookie,cookie 是一种在远程浏览器端储存数据并以此来跟踪和识别用户的机制。可以用 setcookie() 或 setrawcookie() 函数来设置 cookie。cookie 是 HTTP 标头的一部分,因此 setcookie() 函数必须在其它信息被输出到浏览器前调用,这和对 header() 函数的限制类似。可以使用输出缓冲函数来
2016-11-18 11:13:03 1789
原创 php会话控制[1]-概况
浏览器访问服务器的基础就是HTTP协议,HTTP协议是无状态的协议,发送请求,收到结果后,链接随即中断,请求的数据不会被维护,每次请求都是相互独立的,如果用户访问一个页面,再去访问另外一个页面,单凭http无法告诉我们这两次请求来自这同一个用户,因此就有了会话控制这一需求。会话控制的思想就是指能够在网站中跟踪一个变量,通过对变量的跟踪,使同一个用户的多次请求之间建立联系,针对这一用户进行单独的
2016-11-17 11:35:30 1897
原创 【DAY.5】PHP数据结构与算法_排序_快速排序
思路分析:快速排序是在冒泡排序的基础上做的升级,以第一个元素为标尺,对无序数组进行分割,大的部分组成一个临时数组,小的部分组成另一个临时数组,再分别将两个临时数组递归分割,直至只剩一个元素,将所有临时数组(只剩了单个元素),进行组合,就合成了新的有序数组。$arr = array(9,3,4,1,7,10,8,2,5,6);function part_sort($array){
2016-11-15 21:28:59 1006
原创 【DAY.4】PHP数据结构与算法_排序_插入排序
思路分析:核心就是区分出已经排序好的,和没有排序的,以第一个元素为有序部分,从第二个元素开始,循环与有序部分对比,插入到有序位置,形成新的有序部分,外层$i控制轮数,循环将无序部分的元素挨个与有序元素部分进行对比插入,$arr = array(9,3,4,1,7,10,8,2,5,6);function insert_sort($array){ $len=co
2016-11-14 21:16:20 1028
原创 【DAY.3】PHP数据结构与算法_排序_选择排序
思路分析:每次从待排序列中选出最大、次大的元素,与冒泡排序相比,每次循环只交换一次位置,节省资源。 function select_sort($array){ $len=count($array); if($len0){ echo '数组不能为空'; return; }
2016-11-12 14:57:47 1815
原创 【DAY.2】PHP数据结构与算法_排序_冒泡排序
思路分析:循环逐个对比,从第一个开始,与下一个数字进行对比,若大于则交换位置,每循环一遍将最大的一个排到最后。(依次比较相邻的元素,两两比较,就可以最终将最大(小)的元素调整到最顶端、次顶端、、、)$arr = array(3,2,5,6,1,8,4,9); function bubble_sort($arr){ $len=count($arr)
2016-11-11 12:41:47 2019
原创 【DAY.1】PHP如何得到数组最后元素的key?
1.array_keys(end($arr)) $array = array( 'one'=>1, 'two'=>2, 'three'=>3, 'four'=>4, ); $arr = array_keys($array); var_dump(end($arr));2.array_pop(end($arr)) $array = arra
2016-11-10 10:31:15 7569
原创 centos安装xhprof
程序安装编译安装wget http://pecl.php.net/get/xhprof-0.9.2.tgztar zxf xhprof-0.9.2.tgzcd xhprof-0.9.2/extension/sudo phpize./configure --with-php-config=/usr/local/php/bin/php-configsudo makesudo make
2016-11-10 09:36:44 2191
原创 wdcp安装错误 make: *** [ext/fileinfo/libmagic/apprentice.lo] Error
问题:安装wdcp3.1,编译安装时,报出错误make: *** [ext/fileinfo/libmagic/apprentice.lo] Error,导致安装程序终止原因:服务器内存不足!1G,解决方案:找到php的安装脚本./lib/php.sh,在38行“./configure --prefix=$IN_DIR/$PHP_DIR \”,后面加入,--disa
2016-11-09 14:58:08 6047
原创 2016/10/17 尽可能多的列出获取文件扩展名的方法
2016/10/17 尽可能多的列出获取文件扩展名的方法$str = 'demo1/demo2/mnn.txt.demo';1.strrchr方法$res = strrchr($str,'.'); echo str_replace('.', '', $res);strrchr() 函数查找字符串在另一个字符串中最后一次出现的位置,并返回
2016-10-17 19:25:36 2803
原创 2016/09/18 print_r函数第二个参数是否使用过,如果用过请说出具体功能
2016/09/17 print_r函数第二个参数是否使用过,如果用过请说出具体功能print_r函数结构bool print_r ( mixed $expression [, bool $return ] )print_r()的第二个参数用于捕获 print_r() 的输出,若此参数设为 TRUE,print_r() 将不打印结果,而是返回其输出。
2016-10-10 20:22:08 2937
原创 2016/09/17 将一个字符串翻转
2016/09/17 将一个字符串翻转1.strrev方法直接使用php字符串翻转函数 strrev$str = "ABCDEFG";var_dump(strrev($str));2.for循环倒叙输出$str = "ABCDEFG";$len = strlen($str);$temp = '';for($i=$len-
2016-10-08 19:49:49 1108
原创 lnmp环境搭建——mysql部分
安装依赖包yum install cmake添加mysql用户groupadd mysql useradd -r -g mysql mysql下载资源包wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.23.tar.gztar -zxvf mysql-
2016-09-29 16:03:42 2547
原创 lnmp环境搭建——nginx部分
1.安装依赖包yum install pcre-devel2.下载并进入软件包wget http://nginx.org/download/nginx-1.6.3.tar.gztar -xzvf nginx-1.6.3.tar.gzcd nginx-1.6.33.安装 ./configure --use
2016-09-28 17:21:24 2488
原创 lnmp环境搭建——php部分
1.更新yum源yum install epel-release yum update2.创建www用户groupadd wwwuseradd -g www -s /sbin/nologin -M www3.安装依赖包yum install -y gcc gcc-c++ autoconf libjpeg
2016-09-28 17:16:35 3049
原创 2016/09/16 empty isset is_null的异同
2016/09/16 empty isset is_null的异同empty介绍bool empty ( mixed $var )判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于FALSE,那么它会被认为不存在。如果变量不存在的话,empty()并不会产生警告。isset介绍bool iss
2016-09-21 18:57:39 2579
原创 2016/09/15 防止用户将表单重复提交
2016/09/15 防止用户将表单重复提交1.提交后,将按钮职位不能点击状态js提交后,将,的type属性改为 'button',技能保持按钮样式,又能使按钮处于不可点击状态,或者增加属性,disabled="disabled" 。2.flag标识方法页面初始化时,设置submitflag一布尔变量,初始值为false,表单提交时判断su
2016-09-21 18:50:39 3255
原创 discuz模板机制解析
通用模板机制PHP通用的模板机制,流程一般是1.初始化模板类2.设置模板变量3.分析模板中的的模板变量4.输出内容discuz模板机制解析流程discuz中的模板机制,将这一流程全都写在template()函数内的checktplrefresh(),编译生成缓存文件(如果模板缓存文件不存在,或者缓存文件的更改时间小于模板文件的更改时间),1.初始化模板类,$te
2016-08-16 14:59:53 3523
原创 discuz手机浏览切换到电脑版后无法再切换到手机版,原理分析
切换原理discuz手机版切换电脑版,底部链接:电脑版,url末尾添加参数mobile=no,新页面会执行函数 source\class\discuz\discuz_application.php->init()->$this->_init_mobile()if(getgpc('mobile') === 'no') { dsetcookie('mobile', 'no'
2016-08-10 18:37:47 3611 1
原创 discuz代码阅读-核心类-class_core.php
source/class/class_core.php 是 Discuz! 的通用初始化模块程序,其几乎被所有的外部代码所引用。下面为代码解析php /** * [Discuz!] (C)2001-2099 Comsenz Inc. * This is NOT a freeware, use is subject to license terms * *
2016-08-04 16:20:50 2625
原创 学习笔记之cookie
cookie原理Cookie意为“甜饼”,是由W3C组织提出,最早由Netscape社区发展的一种机制。目前Cookie已经成为标准,所有的主流浏览器如IE、Netscape、Firefox、Opera等都支持Cookie。由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论谁访问都必须携带自己通行
2016-08-01 18:09:27 2672
原创 discuz URL 路由解析
前台部分常规连接forum.php?mod=collection&action=view&ctid=6以淘贴为例,URL传递的参数主要有mod、action、ctid,其中mod、action的作用就是引入相关脚本,接下来一一分析,modrequire DISCUZ_ROOT.'./source/module/forum/forum_'.$mod.'.php';
2016-06-22 14:24:57 6991
原创 discuz登录流程解析(版本X3.2)
discuz登录流程解析,最近在研究,Ucenter的同步登陆机制,就先从discuz的登录开始了1.form表单提交member.php?mod=logging&action=login&loginsubmit=yes&handlekey=login&loginhash=Lm137&inajax=1处理脚本 source/module/member/member_log
2016-06-16 16:56:55 5698
原创 微软How-old(照片识别年龄)数据交互流程分析
目标网站:http://www.how-old.net/网站功能:上传照片,服务器返回数据、显示照片中人物性别与年龄。简介:通过流程梳理,网站通过Ajax将用户上传图片或是在线图片以post形式传到服务器,服务器分析图片,并调用自身分析系统,返回Json数据,客户端Js根据json数据生成样式文件,显示出示照片中人物性别与年龄。应用流程实例分析,进入网站后,可以通过
2016-02-27 09:04:54 4689
jQuery基础教程].(JonathanChaffer&KarlSwedberg;).扫描版
2012-06-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人