<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qpmglj的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qpmglj</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qpmglj]]></copyright><item><title><![CDATA[史上最全常用正则表达式大全]]></title><link>https://blog.youkuaiyun.com/qpmglj/article/details/81167016</link><guid>https://blog.youkuaiyun.com/qpmglj/article/details/81167016</guid><author>qpmglj</author><pubDate>Mon, 23 Jul 2018 14:23:57 +0800</pubDate><description><![CDATA[史上最全常用正则表达式大全

很多不太懂正则的朋友，在遇到需要用正则校验数据时，往往是在网上去找很久，结果找来的还是不很符合要求。所以我最近把开发中常用的一些正则表达式整理了一下，在这里分享一下。给自己留个底，也给朋友们做个参考。

 

一、校验数字的表达式

 

1. 数字：^[0-9]*$

2. n位的数字：^\d{n}$

3. 至少n位的数字：^\d{n,}$

4. m-n位的数字...]]></description><category></category></item><item><title><![CDATA[移动端meta设置大全]]></title><link>https://blog.youkuaiyun.com/qpmglj/article/details/80937379</link><guid>https://blog.youkuaiyun.com/qpmglj/article/details/80937379</guid><author>qpmglj</author><pubDate>Fri, 06 Jul 2018 10:35:10 +0800</pubDate><description><![CDATA[                声明文档使用的字符编码:  &amp;lt;meta charset='utf-8'&amp;gt;  优先使用 IE 最新版本和 Chrome:  &amp;lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=edge,chrome=1&quot;/&amp;gt;  页面描述:  &amp;lt;meta name=&quot;description&quot; content=&quot;不超.]]></description><category></category></item><item><title><![CDATA[html常用页面写法]]></title><link>https://blog.youkuaiyun.com/qpmglj/article/details/80850160</link><guid>https://blog.youkuaiyun.com/qpmglj/article/details/80850160</guid><author>qpmglj</author><pubDate>Thu, 28 Jun 2018 22:54:59 +0800</pubDate><description><![CDATA[PC端常见的布局技术: 1. margin:0 auto ; 自动居中 2. text-align /vertical-align 和line-height  3. float:left/right +overflow:hidden 浮动 4. display:table/table-cell /inline-block 通过转换元素的属性来实现布局 5. 固定定位\相对定位\绝对定位 及配合z-...]]></description><category></category></item><item><title><![CDATA[HTML5开发手机项目-个人总结]]></title><link>https://blog.youkuaiyun.com/qpmglj/article/details/80848817</link><guid>https://blog.youkuaiyun.com/qpmglj/article/details/80848817</guid><author>qpmglj</author><pubDate>Thu, 28 Jun 2018 20:40:09 +0800</pubDate><description><![CDATA[来自http://hi.baidu.com/welan/item/9206c0336b665abf134b14c2，很不错的总结让网页的宽度自适应屏幕&amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width&quot;/&amp;gt;   1）html上加入&amp;lt;meta name=&quot;viewport&quot; content=&quot; initial-scale=1.0,us...]]></description><category></category></item><item><title><![CDATA[HTML5移动端手机网站开发]]></title><link>https://blog.youkuaiyun.com/qpmglj/article/details/80848540</link><guid>https://blog.youkuaiyun.com/qpmglj/article/details/80848540</guid><author>qpmglj</author><pubDate>Thu, 28 Jun 2018 20:19:21 +0800</pubDate><description><![CDATA[手写手机网站一般我们自己手动开发手机网站的话，基本可以划分两类来做到。一类是通过在网页头部添加meta标签进行实现（网页指html5的格式来开发）。另一类是通过CSS3的Media标签（媒介查询）来实现。    在这里我们详细讲解下,利用添加meta标签来做手机网站。基本在网页头部我们只需添加四个meta标签就可以实现一个手机网站的框架。我一起来看看是哪些meta标签。1、添加viewport标签...]]></description><category></category></item><item><title><![CDATA[PHP  SQL注入]]></title><link>https://blog.youkuaiyun.com/qpmglj/article/details/80056881</link><guid>https://blog.youkuaiyun.com/qpmglj/article/details/80056881</guid><author>qpmglj</author><pubDate>Mon, 23 Apr 2018 22:44:23 +0800</pubDate><description><![CDATA[什么是SQL注入SQL注入是一种将SQL代码添加到输入参数中，传递给SQL服务器解析并执行的攻击手段。上个简单案例：这是正常mysql数据库查询语句，下面展示SQL注入的案例：select * from dept where deptno = -1 or 1 =1;这就是所谓的将SQL代码添加到输入参数中，传递给SQL服务器解析并执行，这样就可以得知你的数据库信息。攻击者可以通过SQL代码构造，达...]]></description><category></category></item><item><title><![CDATA[PHP 序列化]]></title><link>https://blog.youkuaiyun.com/qpmglj/article/details/79953989</link><guid>https://blog.youkuaiyun.com/qpmglj/article/details/79953989</guid><author>qpmglj</author><pubDate>Sun, 15 Apr 2018 22:19:30 +0800</pubDate><description><![CDATA[什么是序列化变量序列化：将变量转成可存储或可传输的字符串的过程，会保留变量的类型和结构。变量反序列化：将序列化的字符串，还原成原始变量。除了资源变量外，其他变量都可以序列化。serialize()   代码：&amp;lt;?php

$arr = array(
	'db_host' =&amp;gt; 'localhost',
	'db_name' =&amp;gt; 'test',
	'db_user' =&amp;gt; ...]]></description><category></category></item><item><title><![CDATA[类型约束]]></title><link>https://blog.youkuaiyun.com/qpmglj/article/details/79951692</link><guid>https://blog.youkuaiyun.com/qpmglj/article/details/79951692</guid><author>qpmglj</author><pubDate>Sun, 15 Apr 2018 18:58:30 +0800</pubDate><description><![CDATA[PHP中，类型约束只能约束三类：array，instance对象类，interface接口类上代码：&amp;lt;?php

//类型约束
function test($a,array $b,$c,$d){

}
test(1,2,3,4);&amp;lt;?php

//类型约束
function test($a,array $b,Obj $c,$d){

}
$arr = array();
test(1,$...]]></description><category></category></item><item><title><![CDATA[PHP面向对象 静态延迟绑定static::]]></title><link>https://blog.youkuaiyun.com/qpmglj/article/details/79951672</link><guid>https://blog.youkuaiyun.com/qpmglj/article/details/79951672</guid><author>qpmglj</author><pubDate>Sun, 15 Apr 2018 18:35:06 +0800</pubDate><description><![CDATA[self表示当前类，static::表示最后执行的类（也就是所谓的静态延迟绑定）上代码：&amp;lt;?php

class School{
	const COUNT = 56;
	public function showInfo(){
		echo self::COUNT;
		echo '&amp;lt;br/&amp;gt;' . static::COUNT;          //static::代表最后执行类...]]></description><category></category></item><item><title><![CDATA[PHP面向对象 self  && $this]]></title><link>https://blog.youkuaiyun.com/qpmglj/article/details/79949720</link><guid>https://blog.youkuaiyun.com/qpmglj/article/details/79949720</guid><author>qpmglj</author><pubDate>Sun, 15 Apr 2018 18:32:38 +0800</pubDate><description><![CDATA[$this代表当前对象，self代表当前类$this用来调用对象的东西：成员属性、成员方法；self用来调用类的东西：类常量、静态属性、静态方法；$this 使用 “-&amp;gt;” 调用成员属性、成员方法self使用“::”调用类常量、静态属性、静态方法$this只能用在成员方法中，self可用在成员方法、静态方法...]]></description><category></category></item><item><title><![CDATA[PHP工厂模式]]></title><link>https://blog.youkuaiyun.com/qpmglj/article/details/79946739</link><guid>https://blog.youkuaiyun.com/qpmglj/article/details/79946739</guid><author>qpmglj</author><pubDate>Sun, 15 Apr 2018 10:42:43 +0800</pubDate><description><![CDATA[什么是工厂模式工厂模式：根据不同的类名，创建不同类的对象。就是生产不同类的对象的工厂，避免使用new关键词。还可以理解为：改变了创建对象的方式工厂模式设计要求工厂模式，可以设计一个工厂类工厂类有一个私有的静态的属性，用来保存不同类的对象工厂类有一个公共的静态的实例化对象的方法 代码：//工厂模式（单例的）

final class Factory{
	//私有的静态的保存对象的数组属性
	stat...]]></description><category></category></item><item><title><![CDATA[PHP单例模式]]></title><link>https://blog.youkuaiyun.com/qpmglj/article/details/79946706</link><guid>https://blog.youkuaiyun.com/qpmglj/article/details/79946706</guid><author>qpmglj</author><pubDate>Sun, 15 Apr 2018 09:40:45 +0800</pubDate><description><![CDATA[单例模式，一个类只允许实例化一个对象，节约内存。上代码：&amp;lt;?php

header(&quot;Content-Type:text/html;charset=utf-8&quot;);

//定义最终的单利的数据库操作类
final class Db{
	private static $obj = null;

	//私有的数据库配置信息
	private $dbHost;
	private $dbName;
...]]></description><category></category></item><item><title><![CDATA[OOP 接口]]></title><link>https://blog.youkuaiyun.com/qpmglj/article/details/79924897</link><guid>https://blog.youkuaiyun.com/qpmglj/article/details/79924897</guid><author>qpmglj</author><pubDate>Fri, 13 Apr 2018 13:39:00 +0800</pubDate><description><![CDATA[接口技术为什么需要接口PHP只支持单继承，只能从一个父类继承功能；如果想要从多个类继承功能，就需要用接口技术来实现；接口技术也是子类中方法的命名规范。接口就是特殊的抽象类。接口定义的实现要点关键词interface ，用来声明一个接口，接口也是一个特殊的类。关键词implements，创建一个子类，来实现接口同类的东西，使用extends继承，不同类的东西，使用implements实现例如：子类继...]]></description><category></category></item><item><title><![CDATA[OOP 最终类 最终方法 抽象类 抽象方法]]></title><link>https://blog.youkuaiyun.com/qpmglj/article/details/79923964</link><guid>https://blog.youkuaiyun.com/qpmglj/article/details/79923964</guid><author>qpmglj</author><pubDate>Fri, 13 Apr 2018 10:01:57 +0800</pubDate><description><![CDATA[最终类 最终方法final修饰类，就是最终类final修饰方法，就是最终方法最终类：不能被继承，直接实例化，不需要增加扩展，已经很完善了。最终方法：不能被重写，直接调用即可。抽象类 抽象方法abstract修饰类，就是抽象类abstract修饰方法，就是抽象方法抽象类：不能实例化，只能被继承。常用语“基础类”。抽象方法：该方法没有方法体，抽象方法只能先继承，然后重写。类中有一个抽象方法，该类必然是...]]></description><category></category></item><item><title><![CDATA[PHP命名规范]]></title><link>https://blog.youkuaiyun.com/qpmglj/article/details/79916606</link><guid>https://blog.youkuaiyun.com/qpmglj/article/details/79916606</guid><author>qpmglj</author><pubDate>Thu, 12 Apr 2018 17:01:25 +0800</pubDate><description><![CDATA[就一般约定而言，类、函数和变量的名字应该是能够让代码阅读者能够容易地知道这些代码的作用，应该避免使用凌磨两可的命名。 1.  类命名使用大写字母作为词的分割，其他的字母均使用小写。名字的首字母使用大写。不要使用下划线('_')。如：Name、SuperMan、BigClassObject。2. 类属性命名属性命名应该以字符‘m’为前缀。前缀‘m’后采用与类命名一致的规则。‘m’总是在名字的开头起修...]]></description><category></category></item><item><title><![CDATA[OOP三大特性]]></title><link>https://blog.youkuaiyun.com/qpmglj/article/details/79916054</link><guid>https://blog.youkuaiyun.com/qpmglj/article/details/79916054</guid><author>qpmglj</author><pubDate>Thu, 12 Apr 2018 16:56:35 +0800</pubDate><description><![CDATA[封装、继承、多态封装性把敏感数据封装在类中，不受外界访问。将某一功能的方方面面封装成一个工具类；例如封装一个数据库工具类，提供数据库的所有常用功能，在类外不能再使用“mysql_*”函数。继承性：如果一个B类有了A类的所有特征信息，那么就认为B类继承A类。继承是为了实现功能的增加和扩展。多态性：在面向对象的理论 中，多态性的一般定义为：同一个操作作用于不同的类的实例，将产生不同的执行结果。方法重载...]]></description><category></category></item><item><title><![CDATA[PHP require  include]]></title><link>https://blog.youkuaiyun.com/qpmglj/article/details/79698212</link><guid>https://blog.youkuaiyun.com/qpmglj/article/details/79698212</guid><author>qpmglj</author><pubDate>Mon, 26 Mar 2018 15:04:19 +0800</pubDate><description><![CDATA[在PHP中，require和include均可用于引入文件，但两者还是有明显的差别。require引入文件一般放在php脚本语句的最前面，在php执行前，先加载引入文件，然后执行php语句。如果引入文件有错误，则直接报错，终止后面的语句，即require属于预加载式的引入。include引入文件则是什么时候使用，什么时候引入，即使引入文件错误，会warning，但不终止接下来的语句执行，即incl...]]></description><category></category></item><item><title><![CDATA[PHP面试——基本算法]]></title><link>https://blog.youkuaiyun.com/qpmglj/article/details/79695035</link><guid>https://blog.youkuaiyun.com/qpmglj/article/details/79695035</guid><author>qpmglj</author><pubDate>Mon, 26 Mar 2018 11:15:13 +0800</pubDate><description><![CDATA[一、排序1、冒泡//冒泡

$arr = array(2,4,654,76,43,23,65,786,43,12);

function mySort($arr){
	for($i = 0;$i &amp;lt;count($arr);$i++){
		for($j = 0;$j &amp;lt; count($arr) - $i - 1;$j++){
			if($arr[$j] &amp;gt;$arr[$j+1])...]]></description><category></category></item><item><title><![CDATA[顺序查找]]></title><link>https://blog.youkuaiyun.com/qpmglj/article/details/79694868</link><guid>https://blog.youkuaiyun.com/qpmglj/article/details/79694868</guid><author>qpmglj</author><pubDate>Mon, 26 Mar 2018 10:50:49 +0800</pubDate><description><![CDATA[顺序查找就是用数组中的每一个值依次与给定的key值进行比较，如果相等，则查找到。下面给出两种顺序查找方案：方案一：&amp;lt;?php

    function search($arr,$key){     
        for($i = 0;$i &amp;lt; count($arr);$i++){      //遍历该数组
            if($arr[$i] == $key){    ...]]></description><category></category></item><item><title><![CDATA[PHP常量   预定义超全局数组]]></title><link>https://blog.youkuaiyun.com/qpmglj/article/details/79684534</link><guid>https://blog.youkuaiyun.com/qpmglj/article/details/79684534</guid><author>qpmglj</author><pubDate>Sun, 25 Mar 2018 11:02:29 +0800</pubDate><description><![CDATA[自定义常量常量特点定义后不能修改，不能撤销定义。与变量不同的是，常量名不需要$常量自动全局，作用域对常量不起作用定义常量define(常量名，常量值);获取常量通过常量名获取constant（）函数判断一个常量是否定义：defined（）预定义超全局数组$GLOBALS[]定义超全局变量，用法 $GLOBALS['values'] = 变量值$a =3;
$b =3;
function aa(){...]]></description><category></category></item></channel></rss>