自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hello World

不为繁华易匠心

  • 博客(108)
  • 资源 (1)
  • 收藏
  • 关注

原创 JavaScript关于作用域、作用域链和闭包的理解

作用域先来谈谈变量的作用域 变量的作用域无非就是两种:全局变量和局部变量。 全局作用域: 最外层函数定义的变量拥有全局作用域,即对任何内部函数来说,都是可以访问的:<script> var outerVar = "outer"; function fn(){ console.log(outerVar); } fn();//res

2017-04-29 22:04:30 55118 3

原创 linux安装MYSQL遇到的问题

####启动MYSQL服务时出现无法创建/var/log/mariadb/mariadb.log 错误信息: Starting MySQL.touch: cannot touch ‘/var/log/mariadb/mariadb.log‘: No such file or directory chmod: cannot access ‘/var/log/mariadb/mariadb.log

2017-10-12 19:39:08 11697 1

原创 如何阻止表单的默认提交事件

表单一点击提交按钮(submit)必然跳转页面,如果表单的action为空也会跳转到自己的页面,即效果为刷新当前页。 如下,可以看到一点击提交按钮,浏览器的刷新按钮闪了一下:如果想要阻止表单的默认提交事件,有以下几种方法:1.将<input>标签内按钮类型从type="submit"修改为type="button"2.表单内的<button>未指定类型时,默认的类型为submit,可以显式的修改为

2017-10-08 23:15:42 51486 6

原创 bootstrap开发中遇到的问题

导航条缩小到XS模式上下留白的情况做了一固定在底部的导航内嵌表单,但是缩小到xs宽度时出现了上下两条白条。 原因也很简单,在缩小到xs宽度时出现了折叠的情况,bootstrap将内嵌的form视为独立整体的一行。 我采用了解决方法: 1.将form的一个class属性:navbar-form改为form-inline 2.再为form添加padding样式style="padding-t

2017-10-08 22:02:07 1437

原创 浅谈JSONP

网上通篇大论JSONP,说的无非都是JSONP可以解决跨域数据访问的问题 那么我们一般访问数据都是通过AJAX,但是AJAX跨域请求需要被请求方通设置Access-Control-Allow-Origin来实现跨域访问。否则AJAX一般不允许跨域请求。 由于AJAX的核心是XMLHttpRequest。我上一篇博文也讲过如何不通过XMLHttpRequest来模仿AJAX。 总共有三种方法:

2017-10-08 18:23:55 404

原创 不用XMLHttpRequest来模仿AJAX

AJAX的原理就是通过XMLHttpRequest对象来对服务端发起请求。所以XMLHttpRequest对象是AJAX的核心。 现在我想不通过XMLHttpRequest对象来对服务端发起请求,但不刷新页面。 例:创建一个投票按钮,点击后将请求服务器数据库对数据加一。 前端投票按钮test.html:<!DOCTYPE html><html lang="en"><head> <m

2017-10-04 16:02:05 941

转载 MyISAM和InnoDB的索引实现

在 MySQL 中,主要有四种类型的索引,分别为: B-Tree 索引, Hash 索引, Fulltext 索引和 R-Tree 索引。我们主要分析B-Tree 索引。B-Tree 索引是 MySQL 数据库中使用最为频繁的索引类型,除了 Archive 存储引擎之外的其他所有的存储引擎都支持 B-Tree 索引。Archive 引擎直到 MySQL 5.1 才支持索引,而且只支持索引单个 AUT

2017-09-16 14:31:21 752

原创 strtolower()和strtoupper()中文乱码问题

这个问题来自腾讯的一道笔试题: PHP的strtolower()和strtoupper()函数在安装非中文系统的服务器下可能会导致将汉字转换为乱码,请写两个替代的函数实现兼容Unicode文字的字符串大小写转换。原因是:中文是由多字节组成的,而只有英文系统的单个英文字符只有一个字节,所以该系统把中文的每一个字节都做了strtolower()处理,改变后的中文字节拼接在一起就成了乱码(新生成的编码映

2017-09-06 21:04:01 3924

原创 背包问题模板

01背包特点:每种物品只有一件子问题定义状态 bag[i][v] : 前i件物品放到一个容量为v的背包中可以获得最大价值转移状态方程 bag[i][v] = max(bag[i-1][v],bag[i-1][v-weight[i]] + value[i])模板:#include<iostream>#include<string.h>using namespace std;int m

2017-09-03 19:42:24 369

原创 BST二叉搜索树

BST的查找算法//递归查找struct node *Find(ElementType key,struct node *BST){ if(!BST) return NULL;//查找失败 if(key > BST->data){ return Find(key,BST->right); }else if(key < BST->data){

2017-09-01 22:24:53 346

转载 构造回文

给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢? 输出需要删除的字符个数。输入描述:输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.输出描述:对于每组数据,输出一个整数,代表最少需要删除的字符个数。输入例子1: abcda google输出例子1: 2 2#include <iostream>#inclu

2017-07-19 20:29:54 381

原创 最长公共子序列与最长公共子串--动态规划

最长公共子串(Longest Common Substirng)和最长公共子序列(Longest Common Subsequence,LCS)的区别为:子串是串的一个连续的部分,子序列则是从不改变序列的顺序,而从序列中去掉任意的元素而获得新的序列;也就是说,子串中字符的位置必须是连续的,子序列则可以不必连续。最长公共子序列问题:对于母串X=<x1,x2,⋯,xm>,Y=<y1,y2,⋯,yn>,求

2017-07-19 20:26:35 355

原创 Referer与防盗链

Referer:HTTP请求头信息中的Referer可以判断访问的本站资源是来自哪里的。因此,我们可以利用Referer来避免别人盗取自己本站的资源,如图片。如Apache可以编写.htaccess文件来重写访问的资源连接RewriteEngine On#Rewrite Base /dir #只在dir目录下生效RewriteCond %{REQUEST_FILENAME} .*\.(jpg|j

2017-07-14 11:36:25 495

原创 Apache No installed service named "Apache2.4"的解决办法

windows安装Apache后,用cmd开启apache服务时,提示No installed service named "Apache2.4" 解决步骤: 1.cmd窗口,进入Apache2的bin目录(比如我的bin路径为E:\Apache24\bin)。 2. 运行httpd.exe -k install -n "Apache2.4" 安装Apache到Windows服务中。 (记得

2017-07-13 22:11:08 12896

原创 使用scoket发送HTTP请求

建议先看一下如何用telnet发送HTTP请求: http://blog.csdn.net/whd526/article/details/75042691<?phpclass Http{ const CRLF = "\r\n"; protected $errno = -1; protected $errstr = ''; protected $url = null;

2017-07-13 15:45:39 467

原创 HTTP协议

Http(HyperText Transfer Protocol),叫做超文本传输协议,它属于应用层协议,是基于Tcp连接的。它是一种基于请求/响应模式的,无状态的协议。 http1.0的特点:一次连接一次响应后就断开; http1.1的特点:持续连接,在一次连接中可发送多个请求,不必等待每次请求的响应是否到来。一般用浏览器来发送http协议,但是也可用别的工具来发送http协议。如teln

2017-07-13 00:54:36 631

原创 Ajax提交表单数据

ajax的基本语法$.ajax({ type: "post", //数据提交方式(post/get) url: "demo.php", //提交到的url data: {"key1":"value1","key2":"value2"},//提交的数据 dataType: "json",//返回的数据类型格式 success: function(msg){

2017-05-21 22:03:48 4412

原创 堆以及php实现堆排序

什么是堆 这里的堆(二叉堆),指得不是堆栈的那个堆,而是一种数据结构。堆可以视为一棵完全的二叉树,完全二叉树的一个“优秀”的性质是,除了最底层之外,每一层都是满的,这使得堆可以利用数组来表示,每一个结点对应数组中的一个元素.数组与堆之间的关系 二叉堆一般分为两种:最大堆和最小堆。什么是最大堆堆中每个父节点的元素值都大于等于其孩子结点(如果存在),这样的堆就是一个最大堆因此,最大堆中的最大元素

2017-05-11 18:49:29 645

原创 先序创建二叉树及三种遍历

#include<stdio.h>#include<stdlib.h>int max = 0;struct node{ int data; struct node *left; struct node *right;};struct node *create(struct node *newNode){//先序创建二叉树 char data; sca

2017-05-11 16:01:28 1932

原创 插入排序

插入排序就像扑克排序,从未排序的序列选第一张牌,插入到已排序的牌堆里的合适位置。function insert(&$arr){ for($i = 1; $i < count($arr); $i++){//认为第一个位置是已排序序列,从第二个开始逐一选择插入 if($arr[$i] < $arr[$i-1]){ $temp = $arr[$i];

2017-05-11 12:57:44 257

原创 php实现冒泡排序

冒泡排序很简单,就是不断地交换相邻的数,使得最大的数排在最后面,即一次循环可以确定最大一个数的排序位置。 php代码实现:function bubble(&$arr){ for($i = 1; $i < count($arr); $i++){//第n次循环可以确定后n个的位置 for($j = 0; $j < count($arr)-$i; $j++){//确定的位置就不用

2017-05-11 12:32:05 648

原创 php实现归并排序

归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。function mergearray($a,$b){ $a_poin

2017-05-07 21:34:20 524

原创 PHP实现链表(暂存)

<?phpclass node{ public $data; public $next; public function __construct($data){ $this->data = $data; $this->next = NULL; }}class Linklist{ public $head = NULL;

2017-05-07 15:42:43 453

原创 Linux连接文件ln

硬连接(hard link)硬连接是通过文件系统的inode连接来产生新文件名,而不是产生新文件 如为filename创建一个硬连接文件filename_hardlink: 如上图,因为硬连接产生不同的文件名都指向相同的inode,所以修改任意一方的属性或block数据,其他文件访问到的数据也联动改变了x先做一个硬连接的测试: 先创建一个新文件: 再创建该文件的一个硬连接: (可能

2017-05-01 15:23:23 689

原创 XML学习笔记

XML被设计来结构化、传输和存储数据,其焦点是数据的内容 HTML被设计来显示数据的,其焦点是数据的外观 即XML旨在传输信息,HTML旨在显示信息XML没有预定义的标签 XML允许作者定义自己的标签和自己的文档结点 XML的声明<?xml version="1.0" encoding="UTF-8"?>XML自己定义的结点标签表示方法:<root> <child>

2017-04-27 18:57:27 283

原创 DOM的三大结点:元素结点、文本结点、属性结点

先来看一句HTML小代码:<p id="ptag">this is a p tag</p>根据上面的那句代码,来说说一下什么是元素结点(element node),简单说就是一个标签,如:<p></p>(不带属性,不带内容,就仅仅只是一个标签) 对于元素结点的nodeName就是标签名(大写),而nodeValue就是null或undefined(除了标签名,啥也没有,nodeValue就不可能有

2017-04-27 15:49:36 1117

原创 关于点击click事件以及事件绑定的方式

Javascript简单地为一个标签绑定事件写法(不单针对button标签):<button onclick="click_fn()">click</button> <script> function click_fn(){ console.log(this); } </script>另一种是用DOM Document对象来绑定事件: (注:这

2017-04-26 22:06:50 37842 1

原创 Linux文件系统Ext2

windows98以前的文件系统是FAT windows2000以后的文件系统是NTFS Linux的正规文件系统为Ext2(linux second extended file system,ext2fs) 通常来说一个分区就是一个可被挂载的文件系统 Linux将文件的权限与属性信息放置到文件系统的inode中,而实际数据放置到 data block块中。另外还有一个超级块(superbl

2017-04-23 17:10:11 906

原创 Linux学习笔记(保持更新)

总共有6个文字界面 tty1~tty6,还有一个图形界面tty7 对应界面进入方法:ctrl+Alt+[F1~F7]终端terminal快捷打开方式:Ctrl+Alt+T who命令查看用户在线信息进入root权限命令:sudo su,再输入密码即可 处于root权限切换回普通用户命令:su - 用户名 普通用户再回到root权限命令:exit文件权限 r(Read,读取):对文件而言,具

2017-04-21 22:02:42 298

原创 php之static静态关键字

都知道声明为static的方法可以在类没有被实例化的时候调用 但是php有个很有趣的现象,静态调用非静态方法:<?phpclass A { public function test(){ echo "hello"; }}A::test();?>php可以对没有声明static的方法实现静态调用。 然后看到了有人说没有加static的方法采用静态调用时会更慢

2017-04-20 11:18:29 1945

原创 php的延迟静态绑定

延迟静态绑定(late static binding)作用:父类可以使用子类重载的静态方法 例子:<?phpclass A{ public static function who(){ echo __CLASS__; } public static function staticTest(){ static::who(); }

2017-04-19 17:43:13 1037

原创 浅谈多态以及php的实现方法

先简单说一下多态 多态的三大特征:子类继承父类子类重写父类父类指向子类多态实现的前提:必须是类与类之间要有关系,要么继承,要么实现,存在重写(override),其实就是抽象函数或接口。 多态的应用:父类对象的引用指向子类对象,其实本质上就是一个向上转型。 举个模型例子,一家公司有员工类(Employee),还有其子类:销售(Sales)、市场(Market)、工程师(Engineer

2017-04-19 17:13:26 13549 3

原创 重载不应归在多态的范畴内

什么是多态? 简而言之,是指多个属于不同类的对象 对同一方法调用做出不同响应的方式。 (感觉还是有点绕口) 举个例子,所有的动物都能发出声音(把发出声音这一行为抽象为一个方法:sound();),但是不同种类的动物发出的声音却是不一样的(调用sound()方法能够得到不同的响应)。 一谈到多态,很多人就联想到重载(overload),但我并不觉得重载在多态的范畴之内。重载,是指允许存在多个同

2017-04-19 14:46:17 597

原创 php实现重载

php是弱类型语言,并没有像JAVA这种强类型语言一样有重载。 重载一般来说就是拥有相同的函数名或方法名,但是参数列表却不同(包括参数个数和参数类型) 从这个定义来说,php是没有重载的,因为php不允许存在相同的函数名。 但是没有并不意味着不能实现。 php有四种机制可以实现重载:(下面用java进行对比)1.弱类型,无需定义变量类型 先举一个JAVA重载的例子:class demo

2017-04-19 14:16:48 4340 1

原创 ubuntu16.04搭建LAMP环境以及遇到的问题

搭建顺序为Apache,Mysql,PHP以及phpmyadmin1.安装Apache 在命令行输入 sudo apt-get install apache2 输入管理员密码 并选择Y安装完毕后,在浏览器中输入:127.0.0.1显示如下图,说明安装正确。产生的启动和停止文件是:/etc/init.d/apache2  启动:sudo apache2ctl -k

2017-04-03 19:27:44 3514

原创 对POST数据实现自动验证

要实现自动验证,只需在Model类里事先定义好验证的方法,然后在其他类定义好要验证数据的格式,在继承Model就可以使用了对POST数据要验证的格式 $this->valid = array( array('验证的字段名',0/1/2(验证场景),'报错提示','require/in(某几种情况)/length(范围)/between(某个范围)'););具体例子

2017-03-17 19:03:53 1736

原创 对POST数据实现自动过滤和自动完成

有一个如下的表单:该表单源码 商品名: 价格: 元 精品   新品   热销 现在要把数据插入到如下的数据库:注意:这个表并不需要价格之类的信息但是,当submit数据时,$_POST接收的数据里并没有收到没打勾的checkbox信息,也没有商品的add_time时间戳信息这时就需要我们手动对post数据进行处理:$data

2017-03-16 21:04:40 3122

原创 无限极分类

首先来说说什么是无限极分类。按照我的理解,就是对数据完成多次分类,如同一棵树一样,从根开始,到主干、枝干、叶子……完成无限极分类,主要运用了两种方法,一是递归方式,二是迭代方式。而主要运用无限极分类的地方有地址解析,面包屑导航等等。下面就来具体介绍两种方法的原理及实现方法。家谱树与子孙树家谱树和子孙树是无极限分类的表现形式之一。家谱,现在很多地方都流行起修家

2017-03-05 12:11:29 1980

原创 mysql如何更改character-set-server默认为latin1

运行环境:win10mysql版本:MYSQL5.7免安装版(或解压版)今天在学习mysql字符集有关乱码的知识然后发现了latin1的字符集编码格式,虽然命令行窗口改变很容易,只需两行命令set character_set_database=utf8;set character_set_server=utf8;但是我发现每次重启mysql服务,这些设置就恢复成默认的设置la

2017-02-06 17:27:03 82407 42

原创 关于各种编码的简要理解

GB2312:两个大于127的字符连在一起时,就表示一个汉字。还重新编码了ACSII,于是被重新编码的两个字节ACSII就是常说的“全角”字符,而原来127以下的那些就叫做“半角”字符。GBK:只要第一个字节大于127,就固定表示这是一个汉字的开始,GBK包括了GB2312的所有内容,同时又增加了近两万个新汉字(包括繁体)和符号。GB18030:增加了几千个少数名族的字

2017-02-06 13:40:08 720

fbclient.dll&64;位

解决php无法加载php_pdo_firebird.dll问题,将其拷贝到C:\Windows\System32或者php根目录下

2017-11-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除