• PHP中PSR-[0-4]代码规范php

    PHP-FIG在说啥是PSR-[0-4]规范的之前,我觉得我们有必要说下它的发明者和规范者:PHP-FIG,它的网站是:www.php-fig.org。就是这个联盟组织发明和创造了PSR-[0-4]规范,膜拜吧,屌丝们!FIG 是 Framework Interoperability Group(框架可互用性小组)的缩写,由几位开源框架的开发者成立于 2009 年,从那开始也选取了很多其他成员进来,虽然不是 “官方” 组织,但也代表了社区中不小的一块。组织的目的在于:以最低程度的限制,来统一各个项目的编码规范,避免各家自行发展的风格阻碍了程序设计师开发的困扰,于是大伙发明和总结了PSR,PSR是Proposing a Standards Recommendation(提出标准建议)的缩写,截止到目前为止,总共有5套PSR规范,分别是:PSR-0 (Autoloading Standard)...

    数据之巅 发布于:2017年09月04 09:33:47
  • php在console下有一个漂亮的进度条php

    关于 \r\n 的由来说到换行,大家都知道在在写程序时,提示语的结尾换行,在 Win 下 \r\n 在 Mac 和 Linux 下 \n 表示,说到这里就要引用下阮一峰大神的一篇关于换行的文章: 回车和换行。在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。 于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做"回车",告诉打字机把打印头定位在左边界;另一个叫做"换行",告诉打字机把纸向下移一行。凑巧,前两天在知乎也看到了一个关于:为什么会用\r\n两...

    数据之巅 发布于:2017年06月30 09:33:25
  • Apache/Nginx为PHP设置、添加$_SERVER服务器环境变量apachenginx

    需求在PHP开发中为了区分线上生产环境还是本地开发环境,如果我们能通过判断$_SERVER['RUNTIME_ENVIROMENT']为 'DEV'还是'PRO'来区分该多好,可惜的是$_SERVER数组里面根本没有RUNTIME_ENVIROMENT这个元素。一、通过nginx的fastcgi_param来设置在nginx配置文件中,可以在nginx总体的配置文件nginx.conf中,也可以在单独的网站配置环境中进行设置,如:www.tomener.com.conf在配置环境server段location中添加相应的配置信息:location ~ \.php($|/) { try_files $uri =404; fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index inde...

    伏草惟存 发布于:2017年05月09 16:55:24
  • 在YII2中使用Jade模板引擎PHPYii2Jade

    Jade是一个高性能的模板引擎,他深受Haml的影响。最初是由JavaScript发展起来供nodejs使用。也有其他语言的实现,可以实现前后端渲染的统一。phpscalarubypythonjava今天想要介绍的是在YII2框架中配置jade模板引擎来提高开发效率:环境介绍:YII2.0PHP5.4+安装:我们推荐使用更加便捷的composer工具来进行安装:composer require conquer/jade "*"或者在composer.json中添加"conquer/jade" : "*"使用composer进行安装完成后。在YII2中配置jade引擎:web.php中修改如下 //.... 'components' => [ 'view' => [ 'defaultExtension' =>...

    jason8482 发布于:2017年04月12 09:31:47
  • PHP使用Mobile-Detect来判断终端浏览器平台类型php判断移动设备

    前言:日常编写网站中,肯定会遇到需要适应不同平台的页面效果。主流的做法为1:使用前端自适应框架(bootstrap等)2:不用终端平台跳转至不同平台页面针对第二种方式而言,使用PHP判断用户浏览器属于哪种平台介绍一种方法实现方法:1.判断User-Agent判断平台类型<?phpfunction isMobile(){$useragent=isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';$useragent_commentsblock=preg_match('|\(.*?\)|',$useragent,$matches)>0?$matches[0]:'';function CheckSubstrs($substrs,$text){foreach($substrs as...

    jason8482 发布于:2017年03月27 11:53:47
  • php成员变量获取速度排序时怎么样的?php源码分析

    有如下4个代码示例,你认为他们创建对象,并获得成员变量的速度排序是怎样的?1:将成员变量设置为public,通过赋值操作给成员变量赋值,直接获取变量class Foo { public $id;}$data = new Foo;$data->id = 10; echo $data->id;run:https://www.bytelang.com/o/s/c/w7zuv097UtI=2:将成员变量设置为public,通过构造函...

    风萧萧兮易水寒 发布于:2017年01月22 11:53:55
  • 使用PHP实现工厂模式php设计模式

    定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使用一个类的实例化延迟到其子类【工厂模式中主要角色】抽象产品(Product)角色:具体产品对象共有的父类或接口具体产品(Concrete Product)角色:实现抽象产品角色所定义的接口,并且工厂方法模式所创建的每一个对象都是某具体产品对象的实例抽象工厂(Creator)角色:模式中任何创建对象的工厂类都要实现这个接口,它声明了工厂方法,该方法返回一个Product类型的对象。Creator也可以定义一个工厂方法的缺省实现,它返回一个缺省的的ConcreteProduct对象具体工厂(Concrete Creator)角色:实现抽象工厂接口,具体工厂角色与应用逻辑相关,由应用程序直接调用以创建产品对象。【工厂模式的优点和缺点】工厂模式的优点工厂方法模式可以允许系统在不修改工厂角色的情况下引进新产品。工厂模...

    myd620 发布于:2017年01月22 11:46:04
  • 谈一谈php中的反射函数php反射函数

    最常用的几个个PHP反射函数 get_class get_class_methods1. get_class — 返回对象的类名string get_class ([ object $obj ] )返回对象实例 obj 所属类的名字。如果 obj 不是一个对象则返回 FALSE。Note: 在 PHP 扩展库中定义的类返回其原始定义的名字。在 PHP 4 中 get_class() 返回用户定义的类名的小写形式,但是在 PHP 5 中将返回类名定义时的名字,如同扩展库中的类名一样。Note: 自 PHP 5 起,如果在对象的方法中调用则 obj 为可选项。Example#1 使用 get_class()<?phpclass...

    风萧萧兮易水寒 发布于:2017年01月15 17:00:47
  • 谈一谈php的写时复制 (Copy On Write)php写时复制php内存管理

    在开始之前,我们可以先看一段简单的代码:<?php //例一 $foo = 1; $bar = $foo; echo $foo + $bar; ?>执行这段代码,会打印出数字2。从内存的角度来分析一下这段代码“可能”是这样执行的:分配一块内存给foo变量,里面存储一个1; 再分配一块内存给bar变量,也存一个1,最后计算出结果输出。事实上,我们发现foo和bar变量因为值相同,完全可以使用同一块内存,这样,内存的使用就节省了一个1,并且,还省去了分配内存和管理内存地址的计算开销。没错,很多涉及到内存管理的系统,都实现了这种相同值共享内存的策略:写时复制很多时候,我们会因为一些术语而对其概念产生莫测高深的恐惧,而其实,他们的基本原理往往非常简单。本小节将介绍PHP中写时复制这种策略的实现:写时复制(Copy on Write,也缩写为COW)的...

    风萧萧兮易水寒 发布于:2017年01月10 09:37:06
  • PHP的笛卡尔积算法实现php迪卡尔积

    笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尓积(Cartesian product),又称直积,表示为X × Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员......<百度百科>下面是使用php的实现方法:function Descartes(){ $t = func_get_args(); if (func_num_args() == 1) { $t0 = $t[0]; return call_user_func_array(__FUNCTION__, $t0); } $a = array_shift($t); if (!is_array($a)) $a = array($a); $a = array_chunk($a, 1); do ...

    风萧萧兮易水寒 发布于:2017年01月09 16:12:23
  • 如何用php生成中文验证码php中文验证码

    实例讲述了php实现的简单中文验证码功能。分享给大家供大家参考,具体如下:<?phpsession_start();$image = imagecreatetruecolor(100, 30);$bg = imagecolorallocate($image, 0, 0, 0);$color = imagecolorallocate($image, 255, 255, 255);//imagestring($image, rand(1,6), rand(3,60), rand(3,15), $rand, $color);for($i=0;$i<3;$i++) { $color2 =...

    AlfredZhao 发布于:2017年01月04 09:56:20