php

PHP如何实现HTTP验证

目录 HTTP Basic HTTP Digest 总结 在日常开发中,我们进行用户登录的时候,大部分情况下都会使用 session 来保存用户登录信息,并以此为依据判断用户是否已登录。但其实 HTTP 也提供了这种...

详解PHP中的数据库连接持久化

目录 PHP中的数据库连接持久化 什么是数据库连接持久化 连接持久化有什么用? 效率对比 注意 总结 PHP中的数据库连接持久化 数据库的优化是我们做web开发的重中之重,甚至很多情况...

详解PHP的引用计数

目录 什么是引用计数 怎么查看引用计数? 对象的引用计数 数组的引用计数 关于内存泄露需要注意的地方 总结 什么是引用计数 在PHP的数据结构中,引用计数就是指每一个变量,除了...

PHP 请求上下文相关总结

我们首先来了解下什么是上下文。在我们写文章,写句子时,都会考虑一个观点或者内容的前后逻辑,转承启合,而在这个观点前后的内容就可以看成是它的上下文内容。它包含了语境...

PHP 生成器的使用详解

目录 什么是生成器? 生成器有什么用? 生成器的应用 返回空值以及中断 返回键值对形式 外部传递数据 yield from 语法 小惊喜 生成器可以用count获取数量吗? 使用生产器来获取斐波那...

php遍历对象的方法

目录 对于php来说,foreach是非常方便好用的一个语法,几乎对于每一个PHPer它都是日常接触最多的请求之一。那么对象是否能通过foreach来遍历呢? 答案是肯定的,但是有个条件,那就是...

PHP设计模式之迭代器模式的使用

目录 Gof类图及解释 实例 一说到这个模式,就不得不提循环语句。在《大话设计模式》中,作者说道这个模式现在的学习意义更大于实际意义,这是为什么呢?当然就是被foreach这货给整...

PHP缓存系统APCu扩展的使用

目录 APCu 扩展 方法说明 使用演示 总结 想必大家都使用过 memcached 或者 redis 这类的缓存系统来做日常的缓存,或者用来抗流量,或者用来保存一些常用的热点数据,其实在小项目中,...

PHP中使用DOMDocument来处理HTML、XML文档的示例

目录 解析HTML 【本文由:http://www.1234xp.com/ip.html 提供,感谢支持】生成一个XML 总结 其实从PHP5开始,PHP就为我们提供了一个强大的解析和生成XML相关操作的类,也就是我们今天要讲的 D...

PHP中include和require的使用详解

在PHP中,有两种包含外部文件的方式,分别是include和require。他们之间有什么不同呢? 如果文件不存在或发生了错误,require产生E_COMPILE_ERROR级别的错误,程序停止运行。而include只产生...

PHP中的错误及其处理机制

目录 什么是错误? Fatal Error:致命错误(脚本终止运行) Parse Error:编译时解析错误,语法错误(脚本终止运行) Warning Error:警告错误(仅给出提示信息,脚本不终止运行) Notice Err...

PHP中的异常及其处理机制

目录 什么是异常? 总结 上回文章中我们讲到了错误是编译和语法运行时会出现的,它们与逻辑无关,是程序员在码代码时不应该出现的,也就是说,这些错误应该是尽量避免带到线上...

PHP 引用的概念

目录 什么是引用? 引用在数组和对象中的使用 引用的传递 引用的返回 引用的取消 总结 什么是引用? 在 PHP 中引用意味着用不同的名字访问同一个变量内容。它不是C的指针,保存的...

详解PHP中的命名空间

命名空间其实早在PHP5.3就已经出现了。不过大部分同学可能在各种框架的使用中才会接触到命名空间的内容,当然,现代化的开发也都离不开这些能够快速产出的框架。这次我们不从框...

PHP如何获取命令行参数

目录 $argv 获得所有空格分隔的参数列表 getopt() 从命令行参数列表中获取选项 长选项 冒号规则 选项参数中断 总结 使用 PHP 开发的同学多少都会接触过 CLI 命令行。经常会有一些定时任...

PHP中垃圾回收相关函数的使用

目录 再谈循环引用以及强制清理循环引用 开启、关闭及查看循环引用垃圾回收状态 强制回收Zend引擎内存管理器使用的内存 获取垃圾收集器的信息 测试代码: 相关文章 之前我们已经...

PHP Session ID的实现原理与实例

目录 Session作用 session 的工作机制: PHPSESSIONID的生产算法原理: php.ini配置如下: PHP Session工作原理 PHPcli模式通过session_id()使用session Session实例问题 session安全问题 Session作用 Session的根...

PHP 弱引用的相关总结

目录 什么是弱引用 WeakReference 注意 测试代码: 之前的文章中,我们已经学习过引用和引用传值相关的知识。我们知道,PHP 中没有纯引用(指针),不管是对象,还是用引用符号 赋值...

php中配置文件保存修改操作 如config.php文件的读取

fputs() 定义和用法 fputs() 函数写入文件(可安全用于二进制文件)。 fputs() 函数是 fwrite() 函数的别名。 //【文章出处:欧洲服务器】file 必需。规定要写入的打开文件。 //string 必需。规定...

你真的了解PHP中的引用符号(&)吗

引言 最近接手了五六年前的老项目,用的是CI2.0框架,在看框架源码的时候有个地方让我楞了一下,于是有了这篇文章。 字符的最早历史可以追溯到公元1世纪,最早是拉丁语et (意为...

PHP的runkit扩展如何使用

目录 动态修改常量 安装 查看超全局变量键 方法相关操作 类方法相关操作 总结 动态修改常量 define('A', 'TestA');runkit_constant_redefine('A', 'NewTestA');echo A; // NewTestA 是不是很神奇。这个 runk...

如何在PHP中操作临时文件

目录 获取 PHP 的默认临时创建文件目录 创建一个临时文件 根据目录状态创建一个唯一名称的临时文件 总结 获取 PHP 的默认临时创建文件目录 学习过 Linux 操作系统的都会知道有一个目...

PHP的bz2压缩扩展工具详解

在日常的开发和电脑使用中,我们经常会接触到压缩和解压的一些工具,PHP 也为我们准备了很多相关的操作扩展包,都有直接可用的函数能够方便的操作一些压缩解压功能。 安装扩展...

php+laravel 扫码二维码签到功能

简介 为满足公司签到业务场景 最终敲定使用微信二维码来实现 微信公众号相关配置 在微信公众平台登陆上去后,点开开发中的基本配置看到的基本信息 框架及拓展包 laravelovertrue/la...

阿里云服务器搭建Php+Apache运行环境的详细过程

目录 1.apache 1.1 安装apache 1.2 开启apache 1.3 验证安装是否成功 1.4 验证是否能够正常访问 2.Php 2.1 安装php 2.1 验证php是否安装成功 3. 安装mysql 4. Php连接数据库并显示数据到网页 1.apache 1.1 安...

PHP的命令行扩展Readline相关函数的使用

目录 Readline 扩展的安装 基本函数操作 读取一行 命令历史列表相关操作 查看 Readline 状态 命令提示效果 字符回调操作相关示例 总结 readline 扩展函数实现了访问 GNU Readline 库的接口。这...

详解PHP设计模式之依赖注入模式

目的 实现了松耦合的软件架构,可得到更好的测试,管理和扩展的代码 用法 DatabaseConfiguration 被注入 DatabaseConnection 并获取所需的 $config 。如果没有依赖注入模式, 配置将直接创建 D...

详解PHP服务器如何在有限的资源里最大提升并发

目录 概述 服务器 数据库 注册登录 提交表单 总结 概述 假设报考app是用5W rmb 向供应商采购,报名当天涌入海量考生,并发数飙升至30W+,导致系统宕机,拒绝服务,致使考生无法报名,...

解析PHP观察者模式Observer

目录 观察者模式结构图 概念 代码示例 观察者模式结构图 概念 一个"演员"(被观察者),一群"观众"(观察者),一台"摄影机"(记录容器) 【观察者模式中主要角色】 1.抽象主题(...

浅谈PHP设计模式之对象池模式Pool

目录 目的 UML 类图 代码 测试 目的 在初始化实例成本高,实例化率高,可用实例不足的情况下,对象池可以极大地提升性能。在创建对象(尤其是通过网络)时间花销不确定的情况下,...

浅谈PHP设计模式之门面模式Facade

目录 目的 UML 代码 测试 目的 Facade通过嵌入多个(当然,有时只有一个)接口来解耦访客与子系统,同时也为了降低复杂度。 Facade 不会禁止你访问子系统 你可以(应该)为一个子系统...

详解PHP7开启OPcache和Swoole性能的提升对比

目录 前期准备 不开启opcache和laravel 开启OPcache 使用swoole加速包 总结 前期准备 测试所用的主机为虚拟机,虚拟机配置在双核4GB的个人电脑中。虚拟机系统为linux,http服务器采用nginx,用...

浅谈PHP模拟发送POST请求之curl基本使用

目录 cURL的基本使用步骤 cURL的常用设置 设置基本信息: 设置POST数据信息: 设置验证信息: 设置强化信息: cURL批处理功能的基本使用 cURL批处理时内存占用过多的问题 cURL批处理时的...

详解PHP用mb_string处理windows中文字符

我们都知道windows中(当然是中文版),文件名和文件内容等编码都是gbk,而我们在开发过程中,IDE里的编码则是UTF-8,(这里不讨论为什么等等问题,只考虑怎么把编码转变成一样的)...

如何用PHP websocket实现网页实时聊天

目录 前言 websocket 简介 与http的关系 握手 数据传输 PHP 实现 websocket 服务器 文件描述符 创建服务器socket 服务器逻辑 客户端 创建客户端 页面功能 用户名异步处理 总结 前言 最近艰难地...

如何用PHP实现多线程编程

目录 多线程 线程 适用场景 PHP中的多线程 线程安全 PHP 实现 类和方法 实例代码 异步请求 超时控制 总结 多线程 线程 首先说下线程: 线程(thread) 是操作系统能够进行运算调度的最小单...

如何用PHP实现分布算法之一致性哈希算法

目录 传统算法缺陷 算法思想 算法实现 总结 传统算法缺陷 对于服务器分布,我们要考虑的东西有如下三点:数据平均分布,查找定位准确,降低宕机影响。 传统算法一般是将数据的键...

浅谈并发处理PHP进程间通信之外部介质

目录 进程间通信 文件 flock 代码实现 mysql select for update 代码实现 redis incr SETNX 代码实现 优化 总结 进程间通信 进程间通信,指至少两个进程或线程间传送数据或信号的一些技术或方法...

浅谈并发处理PHP进程间通信之System V IPC

目录 前言 Unix System V IPC 信号量 共享内存 消息队列 函数介绍 ftok semaphore函数 shared_memory函数 代码实现 小结 前言 它的安装和使用非常简单,在编译 PHP 时添加 --enable-sysvsem --enable-sysvs...

详解PHP优化巨量关键词的匹配

目录 问题由来 原始 - grep 设计 代码 进化 - 正则 设计 正则小坑 代码 觉醒 - 拆词 设计 代码 结果 终级 - Trie树 trie树 设计 代码 结果 他径 - 多进程 设计 结果 总结 问题由来 前些天工作...

详解PHP调用Go服务的正确方式

目录 问题 服务耦合 服务抽取 Unix Domain Sockets 进程间通信 简单介绍 适用场景 代码实现 Go 实现的 Trie 树 Go Server PHP Client 小结 效率 杂谈 问题 服务耦合 我们在开发过程中可能会遇到这样...

详解PHP Swoole与TCP三次握手

目录 握手常见问题 连接拒绝 Operation now in progress 丢包 错误ip backlog SYN Flood 握手常见问题 1、连接拒绝 2、Operation now in progress 多是因为丢包、错误ip、backlog满了阻塞tcp_abort_on_overflow=0...

详解Laravel框架的依赖注入功能

目录 概述 真实的例子 结论 概述 任何时候,你在一个控制器类中请求一个依赖,这个服务容器负责: 1.自动地在构造函数中检测依赖关系 2.如果需要构建这个依赖关系 3.通过构造函数...

如何用Laravel包含你自己的帮助函数

很多教程都会说,你在 composer.json 这个文件中通过添加一个自动加载的文件,就可以实现这个需求。但我认为这不是一个好的方式,当你在 helpers.php 文件中添加了更多的函数时,可读性...

详解PHP Swoole长连接常见问题

目录 连接失效问题 如何解决 如何维持长连接 结论 连接失效问题 例子 其中,Redis常见的报错就是: 配置项:timeout 报错信息: Error while reading line from the server Redis可以配置如果客户端...

浅谈Swoole并发编程的魅力

目录 场景介绍 并发编程 编码实现 并发难题 数据同步问题 思维转变 场景介绍 假设我们要做一个石头剪刀布的Web游戏,3个玩家同时提交竞猜后显示胜者。在传统串行化Web编程中,我们...

浅谈定义一个PHP函数

目录 概述 函数参数与它们的数据类型 函数与它们的返回值 可选参数 VS 可空参数 概述 phpfunction divide($dividend, $divisor){ return $dividend / $divisor;}echo divide(12, 4);echo divide('sa', 'sd'); 这段代码乍...

如何理解PHP核心特性命名空间

目录 提出 定义 使用 限定符 在内部访问命名空间 转义\符号 提出 PHP 在 5.3 后提出了命名空间用来解决组件之间的命名冲突问题,主要参考了文件系统的设计: 同一个目录下不允许有相...

详解thinkphp的Auth类认证

RBAC是按节点进行认证的,如果要控制比节点更细的权限就有点困难了,比如页面上面的操作按钮, 我想判断用户权限来显示这个按钮, 如果没有权限就不会显示这个按钮; 再比如我想...

如何让PHP的代码更安全

目录 概述 越权漏洞 1. 水平越权 2. 垂直越权 3. 上下文越权 JWT 的 Token 需要二次加密 LFI (本地文件包含) XSS CSRF (跨站请求伪造) 概述 攻击者通过构造恶意SQL命令发送到数据库,如果程序...