前言
本篇将讲述如何构建路由。推荐 https://github.com/NoahBuscher/Macaw,对应的 Composer 包为:noahbuscher/macaw
安装macaw
我们可以直接编辑composer.json文件,添加即可:
{
"require": {
"noahbuscher/m...
为啥会有这个问题?
随着网站访问量的增加,初期的一台服务器已经完全不能支持业务,这个时候我们就需要增加服务器设备,来抗住请求的增量。如下所示:
负载均衡的目的本来就是要为了平均分配请求,所以没有固定第一次访问和...
基于cookie的认证机制
Cookie认证机制就是为一次请求认证在服务端创建一个Session对象,同时在客户端的浏览器端创建了一个Cookie对象;通过客户端带上来Cookie对象来与服务器端的session对象匹配来实现状态管理的。默认的,当我们关...
概述
在设计之初, cURL (Client URL Library )是一种作为使用 URL 语法传输数据的命令行工具。通过 cURL 库,我们可以在 PHP 脚本中自由地使用某种协议来获取或者提交数据,比如获取 HTTP 请求数据。简单的来说,cURL 是客户端向...
请求过程
HTTP/0.9
HTTP 是基于 TCP/IP 协议的应用层协议。它不涉及数据包 (packet) 传输,主要规定了客户端和服务器之间的通信格式,默认使用 80 端口。
最早版本是1991年发布的 0.9 版。该版本极其简单,只有一个...
一、数组操作的基本函数
数组的键名和值
array_values($arr); 获得数组的值
array_keys($arr); 获得数组的键名
array_flip($arr); 数组中的值与键名互换(如果有重复前面的会被后面的覆盖)
in_array("apple",$arr); 在数组中...
前言
平时经常听到大牛说到的gc,就是垃圾回收器,全称Garbage Collection。
早期版本,准确地说是5.3之前(不包括5.3)的垃圾回收机制,是没有专门的垃圾回收器的。只是简单的判断了一下变量的zval的refcount是否为0,是的话就释放...
PHP编译特点
编译型语言
对于C语言,C++,编译成机器码(二进制)来运行。
Java语言,把.java 编译成.class, 称为bytecode(字节码),由jvm来运行
解释型语言
解释器解释执行。 典型的如: linux shell
解释器逐行来执行...
PHP是什么
PHP是一种适用于Web开发的动态语言,是一个用C语言实现,包含大量组件的软件框架。
多进程模型:PHP是多进程模型。不同请求间互不干涉,即一个请求挂掉不会对全盘服务造成影响。(使用进程控制函数,创建子进程,执行...
大访问量下Apache和Nginx谁性能高?
为什么大访问量下Nginx性能更高?
两者采用的服务器的模式不一样
Apache所采用的select网络I/O模型非常低效
Nginx使用了最新的epoll(Linux 2.6内核)和kqueue(freebsd)网络I/O...
PHP的运行模式
SAPI:Server Application Programming Interface 服务器端应用编程端口。它就是PHP与其它应用交互的接口,PHP脚本要执行有很多种方式,通过Web服务器,或者直接在命令行下,也可以嵌入在其他程序中
SAPI 提供了一个...
迭代生成器
生成器的核心是一个 yield 关键字,一个生成器函数看起来像一个普通的函数,不同的是:普通函数返回一个值,而一个生成器可以 yield 生成许多它所需要的值。生成器函数被调用时,返回的是一个可以被遍历的对象。yield 和 ...
前言
自 PHP 5.4.0 起,PHP 实现了一种代码复用的方法,称为 trait。众所周知,PHP 中是单继承的,trait 是为类似 PHP 的单继承语言而准备的一种代码复用机制。trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构...
前言
PHP7 是 PHP 编程语言全新的一个版本,主要在性能方面获得了极大的提升。官方的文档显示, PHP7 可以达到 PHP5.x 版本两倍的性能。同时还对 PHP 的语法做了梳理,提供了很多其他语言流行的语法格式。难能可贵的是,做了如此大的...
1. 考察运算符
[codesyntax lang="php"]
$a = 3;
$b = 4;
if($a = 3 || $b = 6){
$a++;
++$b;
}
echo $a, $b;
[/codesyntax]
结果是:15
分析:重点if里面的运算符,||的运算级别高于=,因此可...