
PHP开发
文章平均质量分 73
zoujunjie202
这个作者很懒,什么都没留下…
展开
-
PHP的输出缓冲区
什么是缓冲区?缓冲区的作用就是,把输入或者输出的内容先放进内存,而不显示或者读取。其实缓冲区最本质的作用就是,协调高速CPU和相对缓慢的IO设备(磁盘等)的运作。在PHP的代码逻辑里面,其实是虚拟机的处理机制,并不是为了设备的问题。 当执行PHP代码的时候,如果碰到了echo print_r之类的会输出数据的代码,PHP就会将要输出的数据放到PHP自身的缓冲区,等待输出. 当PHP自身的缓冲区接到转载 2016-03-16 11:13:16 · 320 阅读 · 0 评论 -
PHP 常用函数积累
empty()判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于FALSE,那么它会被认为不存在。如果变量不存在的话,empty()并不会产生警告。 note: 在 PHP 5.5 之前,empty() 仅支持变量;任何其他东西将会导致一个解析错误。换言之,下列代码不会生效: empty(trim(name))。作为替代,应该使用trim(name))。 作为替代,应该使用trim原创 2016-01-06 15:46:07 · 325 阅读 · 0 评论 -
Yii 学习笔记
关于写代码的顺序在学习使用表单的章节中,作者先写Model的代码,然后写controller的代码,最后写View的代码。这不是一个偶然,在使用thinkPHP框架写代码的时候,也同样遇到过类似的问题,开始写代码的时候不知道从那里入手比较顺。实际上,如果模型没有定义好,证明整个业务逻辑没有理清,没有理清业务当然就构建不出模型来,所以教程里面的顺序安排也给了自己指导意见,将来的代码逻辑里面应该从模型开原创 2016-03-22 14:28:02 · 652 阅读 · 0 评论 -
PHP源码阅读之源码目录结构
根目录:php-src 根目录主要包含一些说明文件以及设计方案,包括版本更新、打包发布的要求,代码风格等。在开始阅读php的源码之前,适当花3到4个小时浏览一遍文件是非常有必要的。一下对其中的文件做一些摘要翻译:持续更新中…原创 2016-09-18 23:35:12 · 1296 阅读 · 0 评论 -
redis 基础知识
Ubuntu 安装 redisroot用户下:apt-get install redis-server // 安装redis-server // 使用默认配置项启动redis服务redis-cli shutdown // 关闭服务redis-cli // 查看服务器是否启动数据类型String 、 List 、Set 、Sorted Set 、Hash 要把数据类型放到最前面来学习是原创 2016-07-31 01:52:03 · 442 阅读 · 0 评论 -
RESTFUL及Yii框架下开发RESTFUL的细节
问题: 1、RESTful是什么?为什么需要RESTful? 2、怎样做才算使用上RESTful 3、在ThinkPHP架构下,如何启用RESTful服务?RESTful是什么?[百度百科]:一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。 解释得是有点罗原创 2015-12-13 00:03:37 · 1037 阅读 · 1 评论 -
Yii框架下搭建基于Gearman的异步Job
Gearman安装额外说明下,我实在Ubuntu OS上搭建的,没有在windows下搭建,其实开发工作,我觉得在linux环境下会更畅快些。Gearman 安装,运行以下脚本:安装:apt-get install gearman-job-server运行:gearmand -d默认启动的端口是4730,telnet一下,如果能通,则代表server已经正常启动了。Gearman PHP E原创 2016-10-05 22:56:53 · 1376 阅读 · 0 评论 -
ubuntu 搭建LNMP + Yii
安装Mysqlapt-get install mysql-server mysql-client 默认安装的是5.5版本,并不是最新版本 过程较简单,不多描述。安装Nginxapt-get install nginx 默认版本1.4.6 卸载脚本: apt-get –purge remove nginx如果要装最新版本可以这样操作: 1、把nginx的apt源加入/etc/apt/sour原创 2016-03-22 00:43:35 · 1108 阅读 · 0 评论 -
static 、self 、 parent
PHP中static 、self 、 parent的指向很让人迷惑,趁有时间,把学习结果记录一下。staticstatic 关键字来定义静态方法和属性。 static 也可用于定义静态变量以及后期静态绑定。static 关键字来定义静态方法和属性。声明类属性或方法为静态,就可以不实例化类而直接访问。静态属性和方法可以通过以下方法访问: 类名::静态属性/方法 对象::静态属性/方法 sel原创 2016-11-28 17:53:08 · 422 阅读 · 0 评论 -
mysql \ mysqli \ PDO
mysql: php的使用mysql 函数去驱动mysql 数据库,属于面向过程的代码风格 mysqli: mysql系统函数的增强版,更稳定更高效更安全,属于面向对象的代码风格 PDO: PDO扩展为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据。1、mysql是非持继连接函数,mysql每原创 2016-12-03 15:01:59 · 321 阅读 · 0 评论 -
PHP 规范化代码风格(PSR、PEAR、Symfony)
目前PHP规范编程的非官方标准有三套,分别是:PSR、PEAR、Symfony通常来说,应该遵循一个已知的标准来编写 PHP 代码。可能是 PSR 的组合或者是 PEAR 或 Zend 编码准则中的一个。这代表其他开发者能够方便的阅读和使用你的代码,并且使用这些组件的应用程序可以和其他第三方的组件保持一致。其中PSR算是比较基础的一套规范,在平时的开发工作中,有必要遵循。其实你可以有你自定义的规范,原创 2016-09-13 15:14:36 · 1469 阅读 · 0 评论 -
PHP 闭包函数及Closure对象的总结
疑问如果你在理解闭包函数的时候觉得比较费解,不如放一放,问自己一个问题: 面向对象编程语言对代码的复用主要采用继承来实现,那面向函数的代码复用能力通过什么来实现呢?你可能第一时间想到的是 函数嵌套,就是通过独立子函数来组织代码。那类似PHP里面的array_walk()、array_udiff()这些函数怎么实现呢?是不是觉得,有了匿名函数,array_walk()、array_udiff()这两原创 2016-08-18 13:56:40 · 5836 阅读 · 1 评论 -
PHP 线程,进程、并发、并行 的理解
摘录自(有删减和修改): http://chenpeng.info/html/3021 进程是操作系统分配资源和调度的功能单元,一个进程里面有一个或者多个线程,线程是操作系统的一个独立运算单元。通常可以认为一个软件对应一个进程,并行是指多个软件一起运行,实际上分时复用而已,并发是指某个软件在运行的时候把计算分给多个CPU同时进行计算,是真正的同一时间内一起发生的事情。 一个比较形象的理解方式:转载 2016-08-02 11:25:19 · 21769 阅读 · 2 评论 -
PHP的定时任务
定时任务,总体上是通过 PHP的死循环来做,或者通过PHP的进程信号来做,或者通过操作系统的定时任务来做。其实这个不是重点,重点在于对定时任务的管理: 1)任务在一个周期内没跑完怎么处理?是kill掉重跑,还是放弃,还是加入队列等待,还是并发执行? 2)任务的依赖关系如何处理? 3)任务的监控如何做?下面摘录一些做定时任务的代码片段,便于将来使用,不过一般都有开源框架提供类似服务的,不一定要自转载 2016-03-29 16:49:52 · 531 阅读 · 0 评论 -
关于CGI、fastcgi、PHP-CGI、PHP-FPM的理解
文章整理自:https://segmentfault.com/q/1010000000256516CGI首先,CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者。所以CGI是一种协议。解释:web server(比如说nginx)只是内容的分发者。比如,如果请求/index.html,那么web server会去文件系统中找到这个文件,发送给浏览器转载 2016-03-22 14:40:49 · 366 阅读 · 0 评论 -
yii 查询构建器
查询构建器建立在 Database Access Objects 基础之上,可让你创建 程序化的、DBMS无关的SQL语句。yii\db\Query::select()用来指定 SQL 语句当中的 SELECT 子句,入参是一个数组或者字符串,如果使用数组格式来指定字段,你可以使用数组的键值来表示字段的别名。默认是所有字段。很明显,使用数组是最好的方式,不妨让整个项目组都规定使用数组来指定字段,即使原创 2016-04-10 21:17:21 · 947 阅读 · 0 评论 -
yii 输入验证
验证代码,这块代码就是model里面最最常见的代码块了。另外在基本的save、update这些方法的调用里面也会做校验,所以不需要额外手工再调一次这么麻烦。// 用用户输入来填充模型的特性$model->attributes = \Yii::$app->request->post('ContactForm');if ($model->validate()) { // 若所有输入都是有效的原创 2016-04-14 17:52:39 · 587 阅读 · 0 评论 -
yii 应用组件
细读这句话三次以上,有助于理解组件在yii框架中的地位: 应用主体是服务定位器,它部署一组提供各种不同功能的 应用组件 来处理请求。 例如,urlManager组件负责处理网页请求路由到对应的控制器。db组件提供数据库相关服务等等。应用组件应用组件在第一次被使用的时候会创建应用组件实例,后续再访问会返回此实例,无需再次创建。应用组件可以是任意对象请谨慎注册太多应用组件,应用组件就像全局变量,转载 2016-04-06 17:31:45 · 633 阅读 · 0 评论 -
错误处理之函数返回值OR异常处理
问题: 1、错误处理的方法有哪些? 2、使用函数返回值还是抛出异常? 3、PHP 原框架下的异常处理机制是怎样的? 4、PHP Yii框架下的错误处理方案是怎样的?有什么参考意义?错误处理的方法有哪些?函数返回值:既return true|false,数组,对象 等使用成员变量保存错误信息:在对象内部预设一个 errors变量(可能更多的时候是一个数组),把内部处理的报错信息暂存起来,最原创 2016-05-06 11:04:22 · 4670 阅读 · 0 评论 -
\Yii::$app 属性整理
yii明显是一个配置驱动的应用,也可以说是数据驱动,通过配置文件来个性化定义,其中有些常用属性最好稍微记忆一下,方便将来使用的时候可以想到并有效利用。 譬如对于一些常用的长namespace、全局变量、数据库配置、全局响应页面、加入组件等。必要属性yii\base\Application::id 区分其他应用的唯一标识IDyii\base\Application::basePath 该应用的根原创 2016-04-06 17:18:24 · 4428 阅读 · 0 评论 -
关于网站漏洞的案例和解决思路
攻击类型SQL注入、XSS跨站脚本攻击、任意文件读取、CSRF攻击、远程拒绝服务类攻击(DDoS)、jiasale电商支付系统重要漏洞,卖家损失巨大漏洞触发场景: 1、在含有jiasale的网站,购买商品下订单 2、记录订单号 3、登录任意一个jiasale网站账户,通过特殊链接可以随意的更改价格,完成支付。比如把999元的改成0.01元 4、如果是自动发卡的,自动发货的,可以直接收到商品。原创 2016-06-28 14:12:43 · 3785 阅读 · 0 评论 -
Memcached 知识整理
关于Redis与Memcached的区别可以看看这篇文章。 http://blog.youkuaiyun.com/tonysz126/article/details/8280696/不管对错,项目里面已经用了Memcached了,所以整理下开发环境的安装过程。安装的服务程序。下载地址是 - 先下载memcached-win32启动软件,如果下载不了就百度找找 http://down2.121down.co原创 2016-04-11 14:22:07 · 370 阅读 · 0 评论 -
PHP正则表达式
//preg_match(“正则表达式”,”字符串”)用于在字符串中查找匹配项 //preg_quote(“字符串”) 在每个有正则表达式语法前面加入一个转义字符即\ //preg_split(“正则”,”字符串”)分割字符串 //preg_grep(“正则”,”字符串”) 与数组匹配后返回新数组 //preg_replace(“正则”,”替换内容”,”原字符串”) 很重要,很常用$s原创 2016-12-03 15:06:14 · 370 阅读 · 0 评论