自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 onethink的hook机制

关于onethink的插架的执行过程,以后台首页的{:hook('AdminIndex')}为例开始进行分析,此方法为function hook($hook,$params=array()){ \Think\Hook::listen($hook,$params);}hook方法接着调用了 onethink\ThinkPHP\Library\Think\Hook.class.php下的l

2016-07-25 11:19:37 2978

原创 thinkphp和onethink之权限管理

onethink权限管理主要分为两个方面一种菜单节点检测,另一种是动态检测(未实现)。 第一次进入系统后,在Admin/Controller/AdminController.class.php中权限验证的代码为: define('IS_ROOT', is_administrator()); if(!IS_ROOT && C('ADMIN_ALL

2016-05-30 15:24:22 7796

原创 onethink学习之动态扩展菜单

在Admin\View\Public\base.html中有 {:extra_menu($_extra_menu,$__MENU__)}这句调用。 参数$_extra_menu在Admin\Controller\AddonsController.class.php进行指定,代码为: $this->assign('_extra_menu',array( '已装插件后

2016-05-24 11:18:57 1925

原创 千里码之爬虫-1

豆瓣电影top250收录了至今为止,大家最最最喜欢的250部电影。该列表呈现了每部电影的评分,年份等基本信息。这题的答案很简单,我想知道这个榜单的前166部电影的评分总和。举例::目前排第一的肖申克的救赎 9.6分,第二的这个杀手不太冷 9.4分,第三的阿甘正传 9.4分。前3部电影的总分=9.6+9.4+9.4=28.4。 地址:http://www.qlcoder.com/task/7560。

2016-05-04 14:03:13 676

原创 php之curl操作 未完

使用curl基本上分为4步1. 初始化 curl_init();2. 设置变量 curl_setopt();3. 执行并获取结果 curl_close()4. 释放cURL句柄 curl_close()curl常用配置CURLOPT_HEADER: 启用时会将头文件的信息作为数据流输出。CURLOPT_FOLLOWLOCATION TRUE: 时将会根据服务器返回 HT

2016-05-04 13:15:34 556

原创 千里码习题集之商品数量-1

举例: 一个拥有6行的文件。 up 3 11 (有一个商家上架了3件11rmb的衣服。) query 11 25 (有一个买家查询11rmb-25rmb的衣服的数量。这里的查询结果是:3件) up 5 25 (有一个商家上架了5件25rmb的衣服。) query 11 25 (有一个买家查询11rmb-25rmb的衣服的数量。这里的查询结果是:8件) down 3 25 (有一个商家下架了

2016-05-04 11:19:02 806

原创 lavarel之容器Application构造函数分析

在lavarel的入口文件index.php中包含了$app = require_once __DIR__.'/../bootstrap/app.php';在app.php中有$app = new Illuminate\Foundation\Application(//Vendor/laravel/framework/src/Illuminate。 realpath(__DIR__.'/..

2016-04-14 22:18:48 1722

原创 php之static和&关键字解析

static关键字static关键字的一个重要特性是静态变量,静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。<?phpfunction test(){ static $a = 0; echo $a; $a++;}?>test();#0test();#1#变量 $a 仅在第一次调用 test() 函数时被初始化静态变量与递归函数fun

2016-04-13 15:45:29 598

转载 php 5.3新增的闭包语法介绍function() use() {}

转载原帖址:http://blog.youkuaiyun.com/lgg201/article/details/6127564<?phpfunction callback($callback) { $callback();}//输出: This is a anonymous function.<br />/n//这里是直接定义一个匿名函数进行传递, 在以往的版本中, 这是不可用的.//现在, 这

2016-04-13 12:15:07 558

原创 laravel创建服务提供者实例

在app\Contracts(自己创建)下创建TestContract.phpnamespace App\Contracts;interface TestContract{ public function callMe($controller);}在app\Services下创建TestService.phpnamespace App\Services;use App\Contract

2016-04-12 20:48:41 1721

原创 laravel依赖注入原理

下例为官方文档,来认识一下反射function bar(Exception $a, &$b, $c) { }$reflect = new ReflectionFunction('bar');#$reflect object(ReflectionFunction)#1 (1) { ["name"]=> string(3) "bar" }foreach ($reflect->getParamete

2016-04-12 18:33:17 2899

原创 laravel常用命令

php artisan migrate根据/database/migrations/下的文件创建迁移数据表。php artisan make:model 模型名 创建一个模型使用原生sql查询插入数据DB::insert('insert into tasks (name) values (? )',['i love you']);查询数据DB::select('select * from us

2016-04-11 22:22:57 1302

原创 laravel核心之ioc容器

使用ioc(控制反转)容器的目的就是为了降低DI(依赖注入); class Container{ protected $binds; protected $instances; public function bind($abstract, $concrete) { if ($concrete instanceof Closure) { #

2016-04-11 18:14:44 699

原创 linux安装composer

首先将php的bin 包含到环境变量中,找到php的bin包,执行pwd命令,复制路径,执行vim /etc/profi命令,即打开/etc/profile文件,将PATH=$PATH:你的路径添加到exports PATH的上方,保存。执行curl -sS https://getcomposer.org/installer | php,然后执行mv composer.phar /usr/loca

2016-04-06 14:16:45 526

原创 node.js入门小实例

为了更深入的了解js,最近开始研究node.js server.js(服务器启动模块)var http = require('http');#包含此模块是为了创建服务器var url = require('url');#包含此模块是为了解析url function start(route,handle) { function onRequest(request

2016-04-06 11:23:33 642

原创 javascript之原型和原型链

原型的好处可以让所有对象实例共享它所包含的属性和方法。为了理解原型,需要先理解对象的概念 1. js中有两种对象,分别是函数对象和普通对象。var fun1 = function(){}console.log(typeof fun1); #functionvar fun2 = new Function('myfunc','console.log(test);');consol

2016-03-30 20:30:48 469

原创 javascript之面向对象

对象:创建对象常用的两种方式,工厂模式:function creatObject(name,age){ var o = new Object(); o.name = name; o.age = age; o.run = function(){ return this.name +this.age+"run...."; }

2016-03-28 17:27:24 322

原创 javascipt之匿名函数和闭包

1.var http = require("http"); http.createServer(function(request, response) { response.writeHead(200, {"Content-Type": "text/plain"}); response.write("Hello World"); response.end();

2016-03-28 15:50:42 415

原创 php模拟登陆正方管理系统

因为毕设需要学生和老师的数据,所以研究了一下正方系统的爬取,使用的是tp框架,所以源代码就以tp为例,如果你用的不是tp,那也只需要修改几个地方就可以.如果看完这篇博客后,还有什么疑问,可以在下方留言,我会尽量去解答,如果这篇博客对你有用,记得点赞。 如果想书写一个爬虫,首先应该通过浏览器将你登陆时,本地与服务器之间的信息传递通过抓包的方式获得,然后通过编程语言去模拟这种信息传递。 第一次抓包的

2016-03-25 11:51:38 3264

原创 linux之shell 条件测试

语法条件测试语法上有两种格式test condition [ condition ]注意两个中括号和参数之间必须有空格逻辑运算符 运算符 解释 -a 逻辑与 -o 逻辑或 ! 逻辑与 && 逻辑与 || 逻辑或例如:[ -f temp ] && echo "temp is a file"[-f temp] || echo "temp is no

2016-03-24 22:32:22 422

原创 linux-shell脚本知识点

注释符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。(可以运行echo $SHELL来看你的系统是使用那一类shell, 比如ubuntu使用的是/bin/bash,则第一行写成#!/bin/bash) 当编辑好脚本时,如果要执行该脚本,还必须使其可执行。 要使脚本可执行: 编译 chmod +x filename 这样才能用./filena

2016-03-24 21:42:22 448

原创 php字符串函数总结 -未完

检测一个字符串是否存在某字符(串)strstr() string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )返回 haystack 字符串从 needle 第一次出现的位置开始到 haystack 结尾的字符串。 若before_needle为 TRUE,strstr() 将返回 n

2016-02-10 23:04:38 487

原创 linux常用操作 -未完

基础:command -options arguments 命令的基本形式:大多数命令使用的选项,是由一个中划线加上一个字符组成,也支持长选项,长选项由两个中划线加上一个字组成。当然,许多命令也允许把多个短选项串在一起使用。如:ls -lt –reverse :,“l”选项产生长格式输出,“t”选项按文件修改时间的先后来排序。加上长选项“–reverse”,则结果会以相反的顺序输出:文件系统:pw

2016-02-09 15:15:22 578

原创 static 后期静态绑定

静态绑定: static::不再被解析为定义当前方法所在的类,而是在实际运行时计算的. 核心:self和parent取决于它的解析上下文,而static取决于它的调用上下文 现在来看一个例子:<?phpclass A { private function foo() { echo "success!\n"; } public function te

2016-02-05 22:47:29 945

原创 linux定时执行php脚本

由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务: /sbin/service crond start //启动服务 /sbin/service crond stop //关闭服务 /sbin/service crond restart //重启服务 /sbin/service crond reload //重新载入配置crontab的文件格式为 *

2015-12-12 21:17:37 920

原创 thinkphp使用阿里大鱼短信接口

1.首先登陆阿里大鱼注册账号,可获得60元的代金券,然后创建应用,应用的类型为阿里大鱼。创建完后下载sdk,将下载后的sdk导入到ThinkPHP\Org下。2.创建控制器用来调用短信接口,代码为下:<?phpnamespace Home\Controller;use Think\Controller;class DuanXinController extends Controller {

2015-12-11 22:06:59 8110 5

原创 php设计模式之迭代器模式

定义:迭代器模式在不需要了解内部实现的前提下,遍历一个一个聚合对象的内部元素,可以隐藏遍历元素所需的操作,让聚合对象的内部实现不暴露给访问者 实例:<?phpinclude 'db.php';class MyIterator implements Iterator{ private $position = 0; //注意:被迭代对象属性是私有的 private $data

2015-09-15 10:24:50 440

原创 装饰器模式

定义:装饰器模式可以动态的添加修改类的功能初始的一个类,无任何修饰,只简单的输出helloworld<?class HelloWorld { protected $output="HelloWorld"; public function output() { echo $this->output; }}$hw=new HelloWorld();$

2015-08-31 10:42:51 404

原创 php设计模式之原型模式

实现方式:原型模式是先创建好一个原型对象,然后通过clone原型对象来创建新的对象。何时使用:原型模式适用于大对象的创建。创建一个大对象需要需要很大的开销,如果每次new就会消耗很大,原型模式仅需内存拷贝即可,这样就免去了类创建重复的初始化操作。实例:<?php/** * * @authors mtg * @date 2015-08-20 10:10:47 */class Peop

2015-08-20 10:43:33 588

原创 php设计模式之观察者模式

原理:这一模式允许某个类观察另一个类的状态,当被观察的类状态发生改变的时候,观察类可以收到通知并且做出相应的动作,通常情况下,一个观察者类负责观察被观察者中的一个动作使用场景:用户注册(验证邮件,用户信息激活),购物网站下单时邮件/短信通知等.接口: SplSubject 接口,它代表着被观察的对象, 其结构: interface SplSubject

2015-08-17 11:18:10 401

原创 php设计模式之策略模式

1.定义:将一组特定的行为和算法封装成类,以适应某些特定的上下文环境 2. 使用策略模式可以实现ioc,依赖倒置,控制反转<?php/** * * @authors mtg * @date 2015-08-07 15:00:54 *//*** 策略接口类:具体策略类需要实现其中的方法*/interface Eat{ public function eat();}

2015-08-07 16:01:02 498

原创 php spl之迭代器iterator

1.ArrayIterator迭代器常用方法:ksort:根据键进行排序 asort:根据值进行排序 seek:将interator里的第一个元素从0开始标记,依次递增,seek是指跳到指定标记 循环时的方法包括current,rewind,key,next,valid.使用方式:常用的有foreach和while,其中我们以前所使用的foreach默认使用的就是迭代器方式。<?php

2015-08-05 14:20:35 600

原创 php标准库spl之链表,堆栈,队列

双向链表类:SplDoublyLinkedList1. 增删节点的方法push:向链表的尾部插入一个节点 pop:获取链表中的尾部节点,并且从链表中删除这个节点;操作不改变当前指针的位置 unshift:向链表的头部插入一个节点 shift:删除一个链表头部节点2. 指针操作方法rewind:使链表的当前指针指向链表的头部(即bottom) current:获得链表当前节点指针指向的元素,必

2015-08-05 13:08:48 947

原创 php正则表达式及其函数

正则表达式基础1. ‘^’和 $’ 表示用来匹配字符串的开始和结束。(^有两种用法,下一种,见下面)“^mtg”: 匹配以 “mtg”开头的字符串; “mtg$”: 匹配以 “mtg” 结尾的字符串; “^mtg$”: 匹配以mtg开头和以mtg结尾的字符串,实际上是只有abc与之匹配 2. ‘*’表示0次或者多次,‘+’表示1次或多次,‘?’表示0次或1次“ab*”: 匹配字符串a和0个

2015-08-03 13:15:42 603

原创 php设计模式之适配器模式

适配器模式分为两种分别是类适配器和对象适配器借鉴http://blog.youkuaiyun.com/hguisu/article/details/7527842类适配器:实用性: 你想使用一个已经存在的类,而它的接口不符合你的需求。你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类协同工作。原理: 将要用到的角色分为以下几种:target最早实现的接口,adaptee改善之后的接口,a

2015-07-30 17:46:48 378

原创 php中的cookie和session

Cookie注意:Cookie是HTTP标头的一部分,因此setCookie()函数必须在其他信息被输出到浏览器前调用,所以即使是空格或空行,都不要在调用setCookie()函数之前输出 1. cookie的设置有两种方式:设置cookie变量设置cookie数组 以下是代码实例:setcookie("mtg","mmm");echo $_COOKIE["mtg"];//输出mmmse

2015-07-23 18:03:13 537

原创 设计模式三大基础模式之工厂模式,单例模式,注册树模式

工厂模式:专门定义一个类来负责创建其它类的实例,被创建的实例通常都具有共同的父类。 <?php abstract class Transportation { protected $name; public function moveWay(){ } } class Car extends Transportation{ protected

2015-07-22 16:33:28 562

原创 PSR_0语法基础框架

规范: 1. 命名空间必须与绝对路径一致。 2. 类名首字母必须大写。 3. 除入口文件外,其他”.php”文件必须是一个类。 实例代码结构: t3.php:<?phpnamespace m1\m2;class T3{ static function t3(){ echo "t3"; }}t4.php<?phpnamespace m3;clas

2015-07-21 21:15:43 489

原创 CI调用机制

在CI框架的声明中多次利用静态变量,来实现单利模式,首先来理解一下&符号的作用:<?php function &test() //定义函数时,函数名前必须加上&符号才能有效 { static $b=0; $b++; return $b; } $a = &test(); //函数引用返回值 改变$a的

2015-07-21 16:02:21 1227

原创 本地apache服务器配置域名

首先找到apache\conf\下的httpd.conf,修改两处 先找到<Directory /> AllowOverride none Require all denied</Directory>将其修改为<Directory /> #AllowOverride none #Require all denied Order deny,allow

2015-07-15 21:06:31 680

空空如也

空空如也

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

TA关注的人

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