- 博客(57)
- 收藏
- 关注
原创 yii框架中的andFilterWhere 和 andWhere的区别
附加条件 你可以使用 andWhere() 或者 orWhere() 在原有条件的基础上 附加额外的条件。你可以多次调用这些方法来分别追加不同的条件。 例如,$status = 10;$search = 'yii';$query->where(['status' => $status]);if (!empty($search)) { $query->andWhere(['like', '
2017-05-03 14:06:30
14431
1
转载 Packagist / Composer(中国全量镜像)
镜像用法有两种方式启用本镜像服务:系统全局配置: 即将配置信息添加到 Composer 的全局配置文件 config.json 中。见“方法一”单个项目配置: 将配置信息添加到某个项目的 composer.json 文件中。见“方法二”方法一: 修改 composer 的全局配置文件(推荐方式)打开命令行窗口(windows用户)或控制台(Linux、Mac 用户)并执行如下命令:compos
2017-04-28 14:40:35
647
原创 yii2.0 数据库关联查询
本文章对 2.0 的关联查询做一个简单的介绍 1、设计好关联关系,在这里为大家做了 一个小例子。(Customer 表 model 文件)public function getOrders(){ /** * 第一个参数为要关联的字表模型类名称, *第二个参数指定 通过子表的 customer_id 去关联主表的 id 字段 */ return $this-
2017-03-17 10:45:16
692
原创 jquery事件 trigger()的使用
定义和用法trigger() 方法触发被选元素的指定事件类型。$("#cancel").on("click", function () { $('.cd-popup3').trigger("click"); });上面代码的意思是说通过点击id为cancel,触发class为cd-popup3的点击事件
2017-03-06 14:42:08
909
原创 php 变量
实例<?php$x=5;$y=6;$z=$x+$y;echo $z; //输出11?> PHP 变量与代数类似,可以给 PHP 变量赋予某个值(x=5)或者表达式(z=x+y)。变量可以是很短的名称(如 x 和 y)或者更具描述性的名称(如 age、carname、totalvolume)。PHP 变量规则:变量以 $ 符号开始,后面跟着变量的名称变量名必须以字母或者下划线字符开始
2017-03-01 18:11:14
318
原创 Yii2.0 behaviors方法使用
(1)控制器 behaviors 过滤数据需要引入如下文件use yii\filters\AccessControl;use yii\filters\VerbFilter;首先:什么是过滤器?过滤器就是对不同用户角色的控制; 如(游客->最普通的平民,用户->已经注册的用户,管理员->拥有一切权限) 然而 Yii2自带的权限控制默认只支持两个角色:guest(游客,没有登录的,用 ?
2017-03-01 14:59:26
1233
原创 Yii2.0 scenarios场景应用详解
Yii2.0 场景的使用:举个简单的例子,现在在 post表里面有 title image content 三个的字段,当我创建一个 post 的时候,我想三个字段全部是必填项,但是你修改的时候,title content 两个字段是必填的, iamge 可以不填写。正常的情况下, [[‘title’, ‘content’, ‘image’], ‘required’,], 但是我们更改的时候 只需要
2017-02-27 16:55:51
758
1
原创 yii2.0 ajax登陆验证失败验证码不自动刷新
yii2.0 ajax登陆验证失败实现验证码自动刷新var img = new Image;img.onload=function(){ $('#captchaimg').trigger('click');};img.src = $('#captchaimg').attr('src');
2017-02-27 11:31:02
1210
原创 yii2.0 处理密码
大部分开发者知道密码不能以明文形式存储,但是许多开发者仍认为使用 md5 或者 sha1 来哈希化密码是安全的。 一度,使用上述的哈希算法是足够安全的,但是, 现代硬件的发展使得短时间内暴力破解上述算法生成的哈希串成为可能。为了即使在最糟糕的情况下(你的应用程序被破解了)也能给用户密码提供增强的安全性, 你需要使用一个能够对抗暴力破解攻击的哈希算法。目前最好的选择是 bcrypt。在 PHP 中,
2017-02-24 12:08:42
625
原创 yii2.0 数据提供者
数据提供者是一个实现了 yii\data\DataProviderInterface 接口的类。 它主要用于获取分页和数据排序。它经常用在 data widgets 小物件里,方便终端用户进行分页与数据排序。 下面的数据提供者类都包含在Yii的发布版本里面:yii\data\ActiveDataProvider:使用 yii\db\Query 或者 yii\db\ActiveQuery 从数据库查
2017-02-22 16:22:03
1108
原创 yii2.0 DetailView
Yii提供了一套数据小部件 widgets ,这些小部件可以用于显示数据。 DetailView 小部件能够用于显示一条记录数据, ListView 和 GridView 小部件能够用于显示一个拥有分页、 排序和过滤功能的一个列表或者表格。一个典型的DetailView的使用方法如下:echo DetailView::widget([ 'model' => $model, 'attr
2017-02-22 15:24:15
1238
原创 YII2 Gridview 部分使用规则
Gridview 列表页面,一般在展示列表页面使用1.页面显示的时间戳转换 a.[ 'label'=>'创建日期', 'attribute' => 'created_at', 'filter' => false, //不显示搜索框 'value' => function($data) { return d
2017-02-22 15:11:56
1165
原创 php中传值与传引用的区别
php中传值和传引用的区别,什么时候传值什么时候传引用?传值:是把实参的值赋值给行参 ,那么对行参的修改,不会影响实参的值 传引用 :真正的以地址的方式传递参数传递以后,行参和实参都是同一个对象,只是他们名字不同而已对行参的修改将影响实参的值 php实例1,传值 <?php $param1=1; //定义变量1 $param2=2; //定义变量2 $param2 = $param1;
2016-12-10 11:29:43
995
原创 php常量详解
常量是一个简单值的标识符(名字)。如同其名称所暗示的,在脚本执行期间该值不能改变(除了所谓的魔术常量,它们其实不是常量)。常量默认为大小写敏感。通常常量标识符总是大写的。可以用 define() 函数来定义常量。在 PHP 5.3.0 以后,可以使用 const 关键字在类定义的外部定义常量,先前版本const 关键字只能在类(class)中使用。一个常量一旦被定义,就不能再改变或者取消定义。可
2016-12-01 16:50:37
323
原创 CGI
秒杀和抢购的场景,流量往往是超乎我们系统的准备和想象的。这个时候,过载保护是必要的。如果检测到系统满负载状态,拒绝请求也是一种保护措施。在 前端设置过滤是最简单的方式,但是,这种做法是被用户“千夫所指”的行为。更合适一点的是,将过载保护设置在CGI入口层,快速将客户的直接请求返回。然后什么是CGI呢?CGI(Common Gateway Interface) 是WWW技术中最重要的技术
2016-11-23 11:21:37
3815
原创 php 采集
今天复习了一下php的采集,又总结回顾了一下下面是采集新浪首页的新闻模块的标题和超链接路径caiji.php<?php header('content-type:text/html;charset=utf-8');set_time_limit(0);$url = "http://www.sina.com.cn/";$con = file_get_contents(
2016-11-21 13:08:14
467
原创 OAuth协议原理
OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为RFC 6749。OAuth的思路OAuth在"客户端"与"服务提供商"之间,设置了一个授权层(authorization layer)。"客户端"不能直接登录"服务提供商
2016-11-18 10:40:23
471
转载 进程与线程的一个简单解释
进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工。背后的含义就是,单个CPU一
2016-11-18 08:57:38
274
转载 一个老程序员PHP程序员说的话(谨以此片时刻提醒自己)
我,一个老程序员,也是一个学生,把玩过甚多语言,大多不精。我既非名牌学校,也不是高学历,仅代表一部分比较蛋疼的人。接触PHP也是很早了,从04年的OFSTAR开始的,到现在六年了,期间也接触过不少的语言。从脚本JS到底层的C语言。坦诚的说,我不是个高手,但是我相信自己比大多数人接触的知识面要宽广,深刻些吧。同时我也是一名学生,从东南大学到西电,对计算机的爱好一波三折。我这里想说几个
2016-11-02 19:11:16
484
转载 php调用酷狗音乐APi
直入主题最近在m.kugou.com 抓到了酷狗api功能包括:1.获取歌手头像,2.获取下载链接,3.获取歌词4.。。。(0)回复1楼2015-11-07 20:06举报 |个人企业举报垃圾信息举报热门推荐千锋php培训 课程全新升级 g
2016-11-02 15:58:53
6089
转载 跨域
关于跨域,以及跨域的几种方式首先我们来想一想 为什么会有跨域这个名词的出现呢? 跨域又是什么呢?为何要跨域? 浏览器的同源策略又是什么?怎么解决? jsonp又是什么? 跨域的原理又是什么呢?名词解释:跨域:浏览器对于javascri
2016-10-26 09:00:00
348
原创 图片防盗链原理及实现
防盗链原理: http标准协议中有专门的字段记录referer1、他可以追溯到请求时从哪个网站链接过来的。2、来对于资源文件,可以跟踪到包含显示他的网页地址是什么。因此所有防盗链方法都是基于这个Referer字段网上比较多的2种一种是使用apache文件FileMatch限制,在httpd.conf中增加 ( 其实也可以将把下面的语句存成一个.htaccess文件),并
2016-10-21 08:19:55
15595
原创 php单例模式
注意:1.外部不可以实例化,因此内部实例化函数的类型必须为静态,在类未实例化之前就已经初始化;2.静态函数只能访问静态变量,所以定义private static $instance;3.静态变量的访问写法为:类名::$变量名,在类内部可以直接写self:$instance;4.可以用instanceof这个关键字检测变量中存放的是不是当前的类实例。<?php //php下的
2016-10-18 19:58:51
337
原创 mvc(composer加载twig)
前面我们通过composer来加载medoo的框架,这节课我们通过composer来加载twig的模板引擎首先我们在我们的composer.json的require里加入"twig/twig":"*"然后在项目的根目录执行composer update命令进行安装twigtwig安装完以后我们只需要修改immooc基类里面的display方法imooc.phppublic fu
2016-10-07 09:33:48
1026
原创 mvc(composer 之 medoo)
这小节我们来学习通过composer来加载轻量级的php数据库框架,来提高我们在针对数据库的一些操作时候的开发效率我们现在composer.json 的require里加入"catfan/medoo":"*"然后在命令行项目根目录执行composer update命令这样我的medoo框架就已经下载好了首先修改我们的模型文件core\lib\model.php<?p
2016-10-04 18:54:19
613
原创 mvc(composer加载)
composer前面我们已经完成了框架中的大部分功能,这小节我们来讲用composer来加载我们前面完成的一些功能首先我们先来了解一下什么是composerComposer 是 PHP 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。Composer 不是一个包管理器。是的,它涉及 "packages" 和 "libraries",但它在每个项
2016-10-04 17:10:01
439
原创 mvc(日志类)
日志类今天我们来完成一个新的功能,这个功能是所有框架中必不可少的功能——日志类,日志类和其他的类有一定的区别,因为日志有可能存储在文件中,有可能存储在数据库中,也甚至存在缓存当中,所以我们在完成日志类的时候需要用到一种新的设计模式。这里我们实现的是文件存储 具体实现如下:首先在lib目录下新建一个log.php<?phpnamespace core\lib;cla
2016-10-03 20:59:29
680
原创 mvc(配置加载类)
配置类 先前我们的框架基本都封装好了,有些配置文件写在当前的文件里,为了提高我们框架的健壮性,我们来配置一个配置类,通过这个配置类来加载我们的一些配置。 首先我们创建一个conf.php文件和routh.php文件,routh.php文件来定义默认的访问的控制器和路由,conf.php来实现这些配置,具体配置如下:Routh.php<?phpreturn array(
2016-10-02 20:05:48
509
原创 mvc(1)
在我们自己要封装一个框架之前,我们首先要知道一般框架的运行流程如下接下来就挨个流程给大家做详细的介绍。入口文件入口文件的内容一般包括如下3点1.定义常量2.加载函数库3.启动框架<?php/** * 入口文件 * 1.定义常量 * 2.加载函数库 * 3。启动框架 */ //定义常量 define('IMOOC',dirname($_
2016-09-29 14:20:43
259
原创 mvc简单的认识
说到mvc,首先大家要知道什么是mvc?MVC全名是Model View Controller ,是模型,视图,控制器的缩写,是一种设计模式,或者说是编程思想。是一种业务逻辑和数据显示分离的方法组织代码。学习mvc的目的1.能够快速上手各大主流php框架,如yii,tp,ci等2.快速适应多数web开发的需求3.逐步接触和了解web系统架构的知识,为日后成为系统架构的中坚力量做
2016-09-28 19:08:27
474
原创 微信入门教学之自动回复和自定义菜单
1.首先注册一个微信公众号,然后登陆 https://mp.weixin.qq.com2.登陆成功以后有订阅号、测试号等,订阅号很多功能没有权限,这里我们选择测试号 在“开发者工具------>公众平台测试账号”,点击进入,登陆到测试账号3.对于刚接触微信开发,我们打开微信开发手册,先看接入指南,下载demo4.将demo放到我们的服务器上直接运行,这里先跳过服务器地址的验证,
2016-09-28 17:07:44
712
原创 分页
/** * 分页 控制器 */ public function actionFenye(){ $data=\Yii::$app->db->createCommand("select * from account")->queryAll(); //总记录数 $count=count($data)
2016-09-23 09:35:54
260
原创 批量删除+即点即改
var str = ''$("#del").click(function(){ $('input[name="checkbox"]:checked').each(function(){ str += ','+$(this).val() }) $.post("{{url('/index/delete')}}",{'str':str},function(msg){ })})
2016-09-22 08:52:40
374
原创 数据库的备份及恢复
突然想起以前laravel框架里做的数据库的备份和恢复,现在拿来和大家一起分享一下首先先说下数据库的备份吧/** * 展示导出表单 * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function showIndex(){ $da
2016-09-20 21:23:51
1226
原创 一般电商的几种订单状态
今天又回顾起了电商里订单方面的几种状态,一下是本人自己的总结,大家多提点意见,一起学习进步当用户点击“一键购买”或者是从购物车里点击 “去结算” ,会跳转到 “核实订单信息” 页面,当全部核实以后点击“提交订单按钮”,此时会跳转到支付页面,并且订单提交成功,此时此刻才算刚刚开始:订单提交成功 此时的订单状态默认为未确认支付成功 此时订单状态为已确认
2016-09-18 20:07:00
31072
2
原创 购物车实现原理
本人对购物车的实现原理不是很清楚,今天查阅各种资料以及自己对京东商城购物车方面的观察,小小总结了一下购物车方面的实现原理:当用户进行购物时他有可能是本商电的会员或游客(非会员);因此得出两种方案:方案一:(会员) 用户进行购物时他是我们本商店的会员(数据库中存在该用户的数据),当用户添加商品到购物车的时候我们可以分为两种方法; 方法一, 当用户购买商品添加到购物车时没
2016-09-18 19:33:16
5209
1
原创 用sql语句创建表
create table news( news_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, news_name VARCHAR(255) NOT NULL, news_class VARCHAR(255) NOT NULL, news_time datetime, news_man VARCHAR(255) NOT
2016-08-11 21:17:20
2634
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人