#PHP

Yum安装php7

发布于:2018-09-13

yum安装php7.0和php7.1 php7.0和php7.1的相关包在mirror.webtatic.com仓库中包含,还有一些相关依赖需要epel源。 需要添加epel和mirror.webtatic.com的rpm源,然后就可以开始相应安装了 #centos 6 rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm #centos 7 rpm -Uvh …...

进入阅读

PHP底层——变量及其数据结构

发布于:2015-12-03

前言 众说周知PHP是一门弱类型语言,PHP中的一个变量可以声明为任意的PHP数据类型,在程序的运行阶段也可以几乎任意的进行类型转换。这是PHP一个灵活而高效的设计,那么PHP的变量是如何进行存储的呢?这篇文章将介绍相关的知识。 PHP类型 PHP是弱类型语言,这并不表示PHP没有类型,在PHP中,存在8种变量类型,可以分为三类: 类型 描述 标量类型 布尔类型——boolean、整型——integer、浮点型——float(double)、字符类型——string 复合类型 关联数组——array、对象——object 特殊类型 资源——resource、常 …...

进入阅读

使用PHP_CodeSniffer进行PHP代码规范检测

发布于:2015-07-09

PHP_CodeSniffer是什么 PHP_CodeSniffer是PEAR中的一个用PHP5写的用来检查嗅探PHP代码是否有违反一组预先设置好的编码标准的一个包,它是确保你的代码简洁一致的必不可少的开发工具,甚至还可以帮助程序员减少一些语义错误。 CodeSniffer内置MySource、PEAR、PHPCS、PSR1、PSR2、Squiz和Zend等几套代码规范。 PHP_CodeSniffer包含两个工具phpcs用来检查代码规范,phpcbf用来纠正代码规范。 安装PHP_CodeSniffer 如果你的WEB服务器上已经安装了PHP和PEAR,那么直接运行下列命令就可以安 …...

进入阅读

使用Composer进行PHP依赖管理

发布于:2015-06-30

Composer是什么 对于现代语言而言,包管理器基本上是标配。Java有Maven,Python有pip,Ruby有gem,Nodejs有npm。PHP的则是PEAR,不过PEAR坑不少。好在我们有Composer,Composer是PHP 的一个依赖管理工具。它是开源的,使用起来也很简单,提交自己的包也很容易。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。 Composer 不是一个包管理器。是的,它涉及 “packages” 和 “libraries”,但它在每个项目的基础上进行管理,在你项目的某个目录中( …...

进入阅读

算法研究(PHP版本)——拓扑排序问题

发布于:2015-06-02

问题 假设一个工程分为若干阶段,每个阶段需要耗费一定的天数,有些工程的开始必须以其他一个和多个工程的结束为前提。假设每次只能同时进行一个阶段,问如何安排执行工程的阶段确保工程能顺利的完成。 解决问题的思路 用一个有向图表示一个工程的各子工程及其相互制约的关系,其中以顶点表示活动,弧表示活动之间的优先制约关系,称这种有向图为顶点表示活动的网,简称AOV (Activity On Vertex network)网。 在AOV网没有回路的前提下,我们将全部活动排列成一个线性序,使得若AOV网中有弧<i,j>存在,则在这个序列中,,i一定排在j的前面,具有这种性质的线性序列称为拓扑有序序 …...

进入阅读

算法研究(PHP版本)——带权二分图最佳匹配问题

发布于:2015-05-13

问题 假设要给5位工人分配不同的5项工作,每位工人都能完成这5项工作,但是每一位工人完成不同工作能带来的效益是不一样的,如何分配工作能使得总效益达到最大值。 解决问题的思路 对于这个问题最容易想到的解决思路是请举所有的排列组合,然后计算总的效益后取最大值即可。上述问题的因子是5,5求全排列一共有120种组合,对于计算机而言,循环求120次求解不是很难的问题,效率也高,但是一旦问题变大,例如因子变为20,那么时间复杂度和空间复杂度都会呈现几何级数级别的上升。 上述问题可定义为寻找带权二分图最佳匹配,解决这个问题的著名算法是KM算法。 对KM算法的描述,基本上可以概括成以下几个步骤: 初始化可行 …...

进入阅读

算法研究(PHP版本)——最大匹配问题

发布于:2015-05-07

问题 假设某一婚介单位要给10位男生和10位女生安排1对1相亲,每个男生都有自己喜好的几位女生(喜好程度假设相同)。问如何进行男女匹配使得男生最大限度的能和自己喜好的女生进行约会,即使得能安排到喜好女生的男生数目最大。 解决问题的思路 此问题实质上是经典的二分图最大匹配问题,求解二分图最大匹配问题的一个算法是匈牙利算法。 匈牙利算法是由匈牙利数学家Edmonds于1965年提出,因而得名。匈牙利算法是基于Hall定理中充分性证明的思想,它是部图匹配最常见的算法,该算法的核心就是寻找增广路径,它是一种用增广路径求二分图最大匹配的算法。 二分图以及匹配相关概念 二分图 简单来说,如果图中点可以被分 …...

进入阅读

算法研究(PHP版本)——妖怪与和尚过河问题

发布于:2015-03-09

问题 有三个和尚(或传教士)和三个妖怪(或食人怪)过河,只有一条能装下两个人(和尚或妖怪)的船,在河的任何一方或者船上,如果妖怪的人数大于和尚的人数,那么和尚就会有被吃掉的危险。你能不能找出一种安全的渡河方法呢? 解决问题的思路 题目的初始条件是三个和尚和三个妖怪在河的一边(还有一条船),解决问题后的终止条件是三个和尚和三个妖怪安全地过到河的对岸,如果把任意时刻妖怪和和尚的位置看作一个“状态”,则解决问题就是找到一条从初始状态变换到终止状态的路径。 从初始状态开始,每选择一批妖怪或和尚过河(移动一次小船),就会从原状态产生一个新的状态,如果以人类思维解决这个问题,每次都会选择最佳的妖怪与和尚组 …...

进入阅读

算法研究(PHP版本)——三只水桶等分水问题

发布于:2015-03-05

问题 有一个容积为8升的水桶里装满了水,另外还有一个容积为3升的空桶和一个容积为5升的空桶,如何利用这两个空桶等分8升水?附加条件是三个水桶都没有体积刻度,也不能使用其它辅助容器。 解决问题的思路 如果我们把某一时刻三个水桶中存水的容积称为一个状态,则问题的初始状态是8升的水桶装满水,求解的解出状态(最终状态)是8升水桶中4升水,5升水桶中4升水。穷举法的实质就是把从初始状态开始,根据某种状态变化的规则搜索全部可能的状态,每当找到一个从初始状态到最终状态的变化路径,就可以理解为找到了一种答案。 这样的状态变化搜索的结果通常是得到一棵状态搜索树,根节点是初始状态,叶子节点可能是最终状态,也可能是 …...

进入阅读

PHP执行原理

发布于:2015-01-07

前言 PHP是一个被广泛应用的脚本语言,因为它的成功,所以很多时候我们应用PHP的时候是不需要考虑底层到底是怎么实现的。但是了解和掌握一下PHP底层的体系和运行结构会有助于我们开发出更高效的代码,这篇文章将会介绍一下有关PHP底层相关的东东。 PHP体系结构 PHP的构成可以划分成以下4个部分: Zend引擎 Extensions内政函数及拓展 SAPI接口 Application应用 Zend引擎 Zend引擎整体用纯c实现,是php的内核部分。它将PHP代码翻译(词法、语法解析等一系列编译过程)为可执行Opcode的处理并实现相应的处理方法、实现了基本的数据结构( …...

进入阅读

浅谈PHP-FPM

发布于:2014-12-16

什么是PHP-FPM PHP-FPM是只用于PHP的FastCGI管理器。对于PHP5.3.3之前的php来说,是一个补丁包,旨在将FastCGI进程管理整合进PHP包中,PHP5.3.3之后PHP的默认安装包直接集成了php-fpm,作为官方默认推荐的FastCGI管理器。 PHP-FPM的特性功能 支持平滑停止/启动的高级进程管理功能 可以工作于不同的 uid/gid/chroot 环境下,并监听不同的端口和使用不同的 php.ini 配置文件(可取代 safe_mode 的设置) stdout 和 stderr 日志记录 在发生意外情况的时候能够重新启动并缓存被破坏的 opcode 文 …...

进入阅读

PHP魔法函数

发布于:2014-11-19

魔法函数 PHP将所有以**__(两个下划线)**开头的类方法保留为魔术方法,这些方法会在特定的情况下被调用。 它们在面向对向编程中起着至关重要的作用,在定义类方法时,除了魔术方法,建议不要以__为前缀。 善用魔法函数往往能使PHP代码更优雅,但是也会使得部分逻辑被"隐藏"起来了,所有阅读源代码时关注一些魔法函数非常重要! 下面逐一介绍几项重要的魔法函数。 __construct() __construct()被称为构造函数。具有构造函数的类会在每次创建新对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作。 如果子类中定义了构造函数则不会隐式调用其父类的构造函 …...

进入阅读

PHP拓展模块安装

发布于:2014-08-01

PHP拓展模块安装 PHP的源码中不光包含了PHP的核心源代码,同时还包含了PHP的许多拓展库(在PHP源码的ext目录中),在编译安装PHP的过程中并不需要将这些拓展全部选择,只需要选择必须的拓展即可。那么问题来了,如果在往后的使用中如果发现还需要增加一些拓展模块,那么怎么办呢?重新编译PHP是一个解决办法,但是一般正常人都不会选择这种方式,PHP提供了多种多样的拓展模块安装方式。 PEAR(PHP扩展与应用库) PEAR是“PHP Extension and Application Repository”的缩写,即PHP扩展和应用仓库。它是一个PHP扩展及应用的一个代码仓库。PEAR是 …...

进入阅读

PHP源代码安装

发布于:2014-06-11

前言 由于安装PHP的人目的不同,我们不能要求每个人都如此这般精通Linux再去安装PHP,特别是有些PHP程序员仅仅是想搭建一个完整的PHP环境,然后就要迅速转入编程工作,自然对linux环境不甚熟悉。对于PHP在Linux上的安装,大多数开发者通常都会选择使用包管理工具(如yum或者apt-get)进行快速安装配置,这样确实能很快的搭建出一套PHP的环境,但是一旦涉及到如设置PHP的安装目录、PHP的升级或需要对PHP做特殊的配置时还是需要自己动手的,所以学习如何在Linux上进行PHP的源代码安装是非常有必要的。 下载PHP源代码 直接www.php.net官网下载PHP的源代码,当然也 …...

进入阅读

PHP运行模式

发布于:2014-02-11

PHP运行模式 PHP运行模式,就是PHP的执行方式,一种是独立的可执行程序(通常是exe程序),一种是以模块的形式嵌入到服务器程序里运行(通常是DLL程序)。独立执行,用到的是CGI(Common Gateway Interface,通用网关接口)技术;而另外一种,在IIS里被称为ISAPI(Internet Server Application Programming Interface,因特网服务器应用程序接口),Apache里则被称为Module(模块)。 PHP目前比较常见的五大运行模式: CGI(通用网关接口 / Common Gateway Interface) …...

进入阅读

MYSQL中UNIX时间戳与日期的相互转换

发布于:2013-06-18

前言 在MYSQL数据库中时间字段的存储通常采用时间戳的格式,但是这一格式在查询时并不直观易读,所以通常会在查询的时候将时间戳格式转换为普通的日期格式。相反的,在交互页面,用户的输入都是普通的时间格式,那么在存储进数据库时同样存在需要转换成时间戳格式的问题,本文就介绍这一相互转换。 MYSQL中转换 UNIX时间戳转换为日期用函数: FROM_UNIXTIME() select FROM_UNIXTIME(1156219870); 日期转换为UNIX时间戳用函数: UNIX_TIMESTAMP() Select UNIX_TIMESTAMP("2006-11-04 …...

进入阅读

PHP版本进化史

发布于:2013-01-02

PHP 1.0 横空出世 PHP 继承自一个老的工程,名叫 PHP/FI。PHP/FI 在 1995 年由 Rasmus Lerdorf 创建,最初只是一套简单的 Perl 脚本,用来跟踪访问他主页的人们的信息。它给这一套脚本取名为“Personal Home Page Tools”。 PHP/FI,一个专为个人主页/表单提供解释程序的程序,已经包含了今天 PHP 的一些基本功能。它有着Perl样式的变量,自动解释表单变量,并可以嵌入HTML 语法本身与 Perl 很相似,但是它很有限,很简单,还稍微有些不协调。 PHP 2.0 1997年11月官方正式版本发布 到1997年,PHP的C语言实 …...

进入阅读

分类

开发
    --go (9)
    --java (5)
    --php (11)
    --mysql (9)
    --javascript (3)
    --html (1)
    --算法 (6)
架构
    --理论 (9)
    --网络 (3)
    --服务器 (2)
    --消息队列 (3)
    --容器 (5)
    --监控 (1)
    --搜索引擎 (3)
    --大数据 (0)
    --测试 (1)
系统
    --linux (10)
    --mac (2)
    --windows (1)
足球
    --世界杯 (60)
    --欧洲杯 (28)
    --文迷 (3)
大学时光
    --校园生活 (96)
    --假期生活 (17)
    --广院杯那些事 (14)
    --北京奥运 (6)
    --胡思乱写 (17)


最近发布

零拷贝技术介绍

服务网格技术简介

C语言标准和标准库简介

Kubernetes简介及环境搭建

Go语言开发的顶级项目


归档

2006 (109)
2007 (40)
2008 (47)
2009 (10)
2010 (6)
2012 (10)
2013 (14)
2014 (27)
2015 (15)
2016 (6)
2017 (8)
2018 (11)
2019 (17)
2020 (5)