- 博客(121)
- 资源 (4)
- 收藏
- 关注
转载 (转)mysql in根据查询id排序
mysql in根据查询时,返回结果是自行排序的,如果要按照我们查询的ID进行排序, 要用到order by field,下面用几个例子来说明一下mysql in查询排序例子: SQL:select * from table where id IN (3,6,9,1,2,5,8,7);这样的情况取出来后,其实,id还是按1,2,3,4,5,6,7,8,9,排序的,但如果我们真要按IN里 面的顺序
2016-08-03 11:17:50
732
转载 (转)JS禁止浏览器后退键
<script type="text/javascript"> //处理键盘事件 禁止后退键(Backspace)密码或单行、多行文本框除外 function banBackSpace(e){ var ev = e || window.event;//获取event对象 var obj = ev.target || ev
2016-08-03 11:15:20
713
原创 svn报错:could not read response body connection was closed by server
could not read response body connection was closed by server
2016-03-18 14:11:01
8326
原创 sublime text安装ctags定位函数
引言sublime是一款非常优秀的开发软件,在前端开发中使用的比较频繁,不过默认不支持函数定位,非常不方便,还好有ctags这款插件。windows下ctags插件的安装1.下载并解压后将ctags.exe文件复制到系统环境路径中; 2.按下 Shift + Command + P 调出命令面板,在package control中选择install package,搜索ctags就能找到ctags
2015-12-24 22:42:13
1234
原创 PHP的ArrayAccess接口简介
最近在研究php微框架slim的源码,slim中的依赖注入基于pimple,于是又去学习了一下pimple。 对比之前自己写的依赖注入类,pimple有一个很新鲜的用法,不是采用$container->session_storage = function ($c) { return new $c['session_storage_class']($c['cookie_name']);};
2015-12-24 21:27:19
3180
原创 使用slim3快速开发RESTful API
关于slim在php的框架世界中,除了像symfony、laravel以及zend这样的全栈式的框架之外,还存在着一些微框架,比如基于symfony的silex,基于laravel的lumen,以及这篇博客中要讲到的slim框架,他们不像别的框架那样笨重,而且存在很多的配置项,大多数都是开箱即用,学习周期也很短,看看文档大多在半天内就能掌握它的基本用法。关于restfulRESTful架构:
2015-12-20 17:01:55
17443
原创 php安装memcache和memcached扩展
php中有两个扩展用于操作memcached,文档地址如下:http://php.net/manual/zh/book.memcache.php http://php.net/manual/zh/book.memcached.php 目前普遍推荐使用memcached方式操作memcached。先来安装memcache,按如下步骤执行即可:wget https://pecl.php.net/ge
2015-12-06 23:24:19
2629
原创 php依赖注入
引言依然是来自到喜啦的一道面试题,你知道什么是依赖注入吗? 依赖注入(DI)的概念虽然听起来很深奥,但是如果你用过一些新兴的php框架的话,对于DI一定不陌生,因为它们多多少少都用到了依赖注入来处理类与类之间的依赖关系。php中传递依赖关系的三种方案其实要理解DI,首先要明白在php中如何传递依赖关系。 第一种方案,也是最不可取的方案,就是在A类中直接用new关键词来创建一个B类,如下代码所示:
2015-11-29 23:47:20
3233
原创 codeigniter是如何实现钩子机制的?
记得上一次去到喜啦面试,面试官问我一个问题:codeigniter是如何实现钩子机制的? 当时答不上来,后来回来之后查了一些资料才明白,所以在这里记录一下: codeigniter的钩子是这样实现的:首先在框架的核心文件system/core/CodeIniter.php文件的 122行,载入Hooks类,接着在该文件中定义了几个挂载点,比如pre_system(129行)、post_contr
2015-11-29 22:50:32
868
原创 php中curl的参数详解
在php中最常用来发起http请求的莫过于curl,但是发现自己在工作中如果有需要用到curl的时候,都是直接从网上抄一段代码拿来用,而且curl的参数实在是太多,看上去让人感觉眼花缭乱,自己好像从来没有认真的去研究过每一个参数的用途,故在这篇博文中稍作整理,并配上相关的案例。CURLOPT_RETURNTRANSFER关于CURLOPT_RETURNTRANSFER,php文档中的概念是:
2015-11-24 23:12:01
3219
原创 使用phpdocumentor2生成项目文档
phpdocumentor2简述在开发一个大型的项目中,项目文件往往会越来越多,这时如果我们寻找一个类文件,想知道他的功能时,可能需要到一个很深的目录结构中去寻找,而且我们很多时候并不是想研究这个类文件的代码,而是想看看这个文件的作用和类文件中包含了哪些方法,这时我们会想如果有一份这样的文档在手边就好了,phpdocumentor就是帮我们生成这样的文档的工具。phpdocumentor2的安装有很
2015-11-15 16:42:50
1895
原创 调试php代码的利器firephp
firephp简述如果你曾经写过js代码的话,那么你对如下的代码肯定不会陌生:console.log('something');通过这行代码,就可以在chome和firefox的开发工具(F12)的console栏中看到你想要的调试信息。 那么,php能不能也通过这种形式进行代码调试呢? 答案是肯定的,可以通过firephp工具来实现在浏览器的console栏中进行调试。firephp的安装安装
2015-11-14 15:43:49
1312
原创 HTTP_REFERER的用法及伪造
引言在php中,可以使用$_SERVER[‘HTTP_REFERER’]来获取HTTP_REFERER信息,关于HTTP_REFERER,php文档中的描述如下: “引导用户代理到当前页的前一页的地址(如果存在)。由 user agent 设置决定。并不是所有的用户代理都会设置该项,有的还提供了修改 HTTP_REFERER 的功能。简言之,该值并不可信。 ”在百度百科中,对于该参数的描
2015-11-13 00:15:57
103405
原创 php中base64加密的应用场景
关于base64加密的用途,在php文档中的描述是:设计此种编码是为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的主体。Base64-encoded 数据要比原始数据多占用 33% 左右的空间。(http://php.net/manual/zh/function.base64-encode.php)其实base64加密方法的应用远远不止于此,今天就跟大家扒一扒base64加密的
2015-11-07 17:34:15
1108330
原创 php垃圾回收机制及内存泄露
php的垃圾回收机制以前一直以为垃圾回收什么的是非常深不可测的知识,后来在做重读php手册的计划时,发现php手册已经对php的回收机制做了较为详细的概述,文档地址:http://php.net/manual/zh/features.gc.php 读完这部分文档之后,个人感觉垃圾回收并不深奥,就只是一个引用计数的概念,当变量的引用数等于0时,就会被销毁。 下面展开讨论一下。请看第一个例子:<
2015-11-07 12:36:07
5924
原创 重读php文档
不知不觉中已经在这个行业工作了两年,有人说技术的学习需要经历三个过程:把书读薄->把书读厚->把书读薄。工作了这么久之后才发现其实自己居然根本就没有把php文档认真的通读一遍,感觉自己基础一点都不牢靠,而在工作中大多使用框架进行开发,都是在使用框架封装好提供给你的方法做开发,久而久之,你甚至都忘了一些php原本的东西。这也就是笔者选择重看一遍php文档的原因。以下是在重看php文档时当时未重视或未清
2015-11-01 17:04:48
559
原创 关于php的register_globals和magic_quotes_gpc参数配置
在与php相关的争议中,过去争议最大的莫过于register_globals的设置。当 register_globals 打开以后,各种变量都被注入代码,例如来自 HTML 表单的请求变量。这就容易引发一些安全层面的问题,比如下面的一个例子:<?phpif(authenticated_user()){ $authorized = true;}if($authorized){ req
2015-11-01 16:57:27
820
原创 php中opcache的使用详解
简述关于opcode缓存的概念可以参考鸟哥的文章:http://www.laruence.com/2008/06/18/221.html 目前为php提供opcode缓存的扩展有很多,比如:Zend Opcache,xcache,eAccelerator,apc等等。为什么选择opcache呢?官方出品,这就保证了会持久更新,而其他一些扩展如apc已经很久都没有更新过了; 适配php5.2
2015-10-27 00:27:26
19736
原创 php中Password Hashing加密方法详解
说到php的加密方式,很多人第一个想到的应该是MD5和sha1这种形式的加密方式。其实php中的加密方式不仅仅只有这一种,之前在博客中提到的php的RSA加密解密算法php的RSA加密解密算法,就是一种比较常见的加密方式。这篇文章要讲的是php5.5版本新加的一种加密方式Password Hashing。 这种加密方式主要用到了4个php函数:password_hash、password_veri
2015-10-24 11:18:15
4697
转载 使PhpStorm支持CI框架语法提示的方法
代码参考:https://github.com/topdown/phpStorm-CC-Helpers 大神的仓库里面还有其他一些ide&框架的自动提示支持 英文好的可以自行搬运。环境说明: phpstorm 7.1 (以下简称为PS) CI 2.2.2解决问题: 1. PS里面没有CI框架的自动提示,model找方法很抓狂?(this−>load之后再无下文)2.model的方法没有自动
2015-10-21 22:39:02
3258
原创 php中cookie跨域的解决方案以及IE和safari浏览器中的坑
最近工作上遇到了一道难题:公司的合作商想将我们平台的用户引流到他们平台,即在他们的网站上用户可以使用在我们平台的用户名和密码进行登录,简言之需要做到用户在两个平台登录状态的同步。一般来说用户登录完之后用户信息存储在cookie中,要实现登录状态的同步实际上就是要实现cookie的跨域共享。具体的实现思路是,a网站不存储cookie,b网站提供cookie的获取接口,a网站实时请求该
2015-10-13 23:23:04
4704
原创 php使用curl的post方法字符串和数组传值的区别
最近在工作中需要请求第三方的一个java版的接口,起初是使用数组进行传参,代码写完之后发现接口死活调试不通,总是提示传参为空,纠结了很久之后,决定尝试使用字符串传参的方式来请求接口,没想到这次居然调试成功了,这让我有了研究这两者究竟有何区别的兴趣。本地的测试代码如下: curl.php<?phpfunction curl_post($url, $data){ $ch = curl_in
2015-10-08 23:49:55
12662
原创 php的RSA加密解密算法
最近因为工作的需要,要倒腾支付宝支付相关的知识,因为支付宝应用了RSA加密机制,个人对此并不了解,所以在这里写下一篇总结。1、生成公钥和私钥要应用RSA算法,必须先生成公钥和私钥,公钥和私钥的生成可以借助openssl工具。 本次测验是在windows下进行的,可以到以下的地址下载windows安装包:http://gnuwin32.sourceforge.net/packages/
2015-10-07 12:54:56
4973
转载 symfony报错:Warning: ob_start(): function ” not found or invalid function name Symfony
If you are installing a symfony 1.x project on a PHP 5.4.1 (or later) version, you may encounter this warning message : Warning: ob_start(): function ” not found or invalid function name in /var/www/l
2015-10-06 10:58:45
1920
原创 symfony权威指南(4、1)之动作
在之前的页面创建基础一文中简要的介绍了一下关于动作的相关知识,在这篇文章中我们将继续深入讨论一下symfony的动作。1、通常情况下动作都写在actions.class.php文件中,但是当action过多的时候,可以考虑将动作拆分,一个动作独立成一个文件,如下所示:之前的版本:actions.class.php<?php/** * php actions. *
2015-10-05 21:50:29
976
原创 symfony报错:Declaration of testAction::execute() must be compatible with sfComponent::execute($request
This is since 1.1 or greater version of symfony:class testAction extends sfAction{public function execute() {}}The above code will work fine for symfony 1.0, but for the vers
2015-10-04 11:38:39
794
原创 symfony权威指南(3)之symfony配置
在开始阅读本文之前建议先阅读笔者之前的一篇博文 yaml文件的语法及注意事项,了解一些关于yaml方面的相关知识。第一次接触symfony的人可能会不太习惯symfony的配置文件,因为symfony的配置文件实在是太多了,而且还分了很多的层级,不过相信随着后期学习的深入,你会了解到symfony的这些配置文件给开发带来了很大的灵活性,利大于弊。一、配置1、项目配置(project
2015-10-03 23:23:55
4435
原创 symfony权威指南(2)之页面创建基础
symfony把页面组织成模块,在建立页面之前,你必须先建立一个模块,也就是一个symfony能识别的目录结构的空壳。可以用如下命令创建一个symfony模块,比如创建一个名叫php的模块:这条命令在modules目录下生成了如下文件:其中actions.class.php文件的内容如下:/*** php actions.** @package blog*
2015-10-01 22:28:17
788
原创 yaml文件的语法及注意事项
因为工作需要,最近在倒腾symfony,而symfony框架里面配置文件超级多,用的都是yaml文件作为配置文件,由于自己对该文件不是很熟悉,故找了资料了解了下,此为学习笔记。首先举个例子,请将如下php数组转换为yaml格式:$bat = array( 'website' =>array( 'baidu' => 'http://www.baidu.com', '
2015-09-29 22:41:13
35834
原创 symfony权威指南(1)symfony的安装
要学习symfony,首先要学习symfony的安装。本文讲的就是如何在windows下安装symfony框架,在linux下的安装大同小异
2015-09-28 22:52:49
1161
原创 xdebug在linux下的安装教程
本文主要讲述如何在linux下安装php的xdebug扩展。1、首先下载xdebug:wget http://www.xdebug.org/files/xdebug-2.3.3.tgz2、解压缩: tar zxvf xdebug-2.3.3.tgz3、进入解压的目录: cd xdebug-2.3.34、建立外挂模块:phpize
2015-09-27 09:17:07
10769
1
原创 redis的有序集合在score相同的情况 下是如何排序的
前两天倒腾redis的有序集合时,自己发现了一个问题,redis的有序集合在score相同的情况 下是如何排序的?通过谷歌搜索,发现了一些线索,在score相同的情况下,redis使用字典排序,不过不是太明白什么是字典排序(这就是非科班出生的悲哀),于是自己测试了一下,相信下面的截图就能回答博文开头的问题了:在score相同的情况下,redis使用字典排序,而所谓的字典排序其实就是“A
2015-09-22 23:38:32
22485
13
原创 redis实战之使用redis实现排行榜
设想在一个游戏中,有上百万的玩家数据,如果现在需要你根据玩家的经验值整理一个前20名的排行榜,你会怎么做呢?一般的做法是写一条类似下面这条sql语句的方式来获取:select * from game_socre order by score desc limit 0,20这种方式在数据量较小的情况下可行,但是在数据量大的情况下查询速度将变慢,特别是还需要联表查询时,速度下降的就更明显了。
2015-09-21 21:51:19
18600
1
原创 php删除数组中指定值的元素的几种方法
测试数组如下://这是一个测试数组$testArr = array( 't' => 'qq', 'q' => 'qq', 'b' => 'baidu', 'a' => 'ali', 'm' => 'xiaomi');方法一://foreach遍历后unset删除,这种方法也是最容易想到的方法function delByValue($arr, $value){ if(!is
2015-09-21 14:31:13
52301
原创 redis实战之使用redis存储session数据
在之前的一篇服务器由单机转换为负载均衡时需要做哪些处理博文中提到,在多台服务器的情况下,建议使用redis存储session数据,具体如何实现呢?其实实现起来非常简单,以php为例:只需要在php.ini文件中修改相关session配置,如下所示:session.save_handler = redissession.save_path = "tcp://127.0.0.1:
2015-09-21 13:39:07
8842
1
原创 redis实战之使用redis保存最近浏览的商品数据
注:本文只做教学目的,而在实际的应用场景中,大型的电商网站的访问量较大,将浏览数据存储于redis中并不可行,望读者知悉。在我们网上购物时,经常能看到那些电商网站通常都有一个叫做“最近浏览过的商品”这样的功能模块,如果你曾经接触过ecshop,应该很容易就想到这样的功能可以用cookie进行实现。实现的思路是:用户点击商品详情链接时,在该页面植入一段代码,将该商品在数据库中对应的id号存储
2015-09-20 23:55:01
12089
1
转载 Redis 禁用FLUSHALL FLUSHDB KEYS 命令
FLUSHALL FLUSHDB 命令会清空数据,而且从不失败,对于线上集群非常危险。KEYS * 命令,当数据规模较大时使用,会严重影响Redis性能,也非常危险。如果从根本上规避这些风险呢?Redis提供了非常简单且有效的方法,直接在配置文件中设置禁用这些命令。设置非常简单,如下rename-command FLUSHALL ""rename-command
2015-09-19 20:59:19
12736
1
转载 解决 PHP Fatal error: Call-time pass-by-reference has been removed
PHP在升级到5.4版本的php可能会出现这种错误:如果这样使用函数(或者类)的话,会产生一个 PHP Fatal error:foo(&$var);实际上,这样用法在php5.3中就会有提示,只是之前的仅仅会提示Deprecated而已。// 正确写法function myFunc(&$arg) { do something... } myFunc($var);//
2015-09-16 11:14:16
2824
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人