PHP
文章平均质量分 75
沐雨聼風
这个作者很懒,什么都没留下…
展开
-
Nginx+php-fpm 模式下的502、504问题
客户端、nginx、php-fpm三者之间的关系客户端发送请求给nginx,nginx将请求接收后,再发给php-fpm。nginx接收到php-fpm的响应后缓存到本地然后再发给客户端,或者一边缓存一边转发,这就是转发响应并以上游网速优先的模式。因为客户端和nginx之间是公网,网速慢环境差,nginx与php-fpm之间是内网,网速快且稳定。什么是502、504他们都表示nginx与其上游服务(这里是php-fpm)之间出了问题,502表示错误,504表示超时。下面都以php-fpm(或php,表原创 2021-04-25 18:43:45 · 1149 阅读 · 0 评论 -
PSR-1
基本代码规范本篇规范制定了代码基本元素的相关标准, 以确保共享的PHP代码间具有较高程度的技术互通性。关键词 “必须”("MUST")、“一定不可/一定不能”("MUST NOT")、“需要”("REQUIRED")、“将会”("SHALL")、“不会”("SHALL NOT")、“应该”("SHOULD")、“不该”("SHOULD NOT")、“推荐”("RECOMME转载 2017-03-20 14:36:42 · 198 阅读 · 0 评论 -
PSR-2
代码风格规范本篇规范是 PSR-1 基本代码规范的继承与扩展。本规范希望通过制定一系列规范化PHP代码的规则,以减少在浏览不同作者的代码时,因代码风格的不同而造成不便。当多名程序员在多个项目中合作时,就需要一个共同的编码规范,而本文中的风格规范源自于多个不同项目代码风格的共同特性,因此,本规范的价值在于我们都遵循这个编码风格,而不是在于它本身。关键词 “必须转载 2017-03-20 18:11:06 · 282 阅读 · 0 评论 -
PSR-3
日志接口规范本文制定了日志类库的通用接口规范。本规范的主要目的,是为了让日志类库以简单通用的方式,通过接收一个 Psr\Log\LoggerInterface 对象,来记录日志信息。框架以及CMS内容管理系统如有需要,可以对此接口进行扩展,但需遵循本规范,这才能保证在使用第三方的类库文件时,日志接口仍能正常对接。本文中的 实现者 指的是实现了 LoggerInter转载 2017-03-21 13:54:08 · 269 阅读 · 1 评论 -
PSR-4
Autoloader1. 概述本 PSR 是关于由文件路径 自动载入 对应类的相关规范,本规范是可互操作的,可以作为任一自动载入规范的补充,其中包括 PSR-0,此外,本 PSR 还包括自动载入的类对应的文件存放路径规范。2. 详细说明此处的“类”泛指所有的class类、接口、traits可复用代码块以及其它类似结构。一个完整的类名需具有以下结构转载 2017-03-21 13:55:54 · 255 阅读 · 0 评论 -
妙用php中的register_shutdown_function和fastcgi_finish_request
前言在php中又两个方法都是在请求快结束的时候执行。方法名分别是 register_shutdown_function和fastcgi_finish_request。虽然执行的时机差不多,但是功能和应用场景不一样。比较两个方法的区别不是本文的重点。本文的重点的说明两个方法的应用场景。register_shutdown_function功能:注册一个方法,当一个请求r转载 2017-03-24 11:12:40 · 424 阅读 · 0 评论 -
PHP实现无符号右移(js中的 >>>)
移位包括有符号左移(>)、无符号右移(>>>),其中 js 支持三种移位,PHP只支持前两种移位(没查到第三种),恰好需要PHP进行无符号右移,此处实现一下。先看结果将数字 $a 向右无符号移动 $n 位function uright($a, $n){$c = 2147483647>>($n-1);return $c&($a>>$n);}下面是这样做的理由1原创 2017-09-13 16:36:59 · 1978 阅读 · 0 评论 -
用PHP实现丢手帕问题(约瑟夫问题)
问题描述:有n个人围成一圈,然后说从任意指定的一个 人那里为起点,以m个人为单位,每转m个人第m个人被杀死。求最后不会被杀死的人。遗留问题:在此用php做简单的实现,php中对递归有100次的深度限制,所以在此不用递归,用循环;php中处理数组的函数比较多,所以采用顺序表(数组),顺序表删除元素比较复杂,所以效率比较低,只能处理10000一下的数据。链表中的遍历比较复杂,同样会导致效率原创 2015-05-04 11:31:33 · 1028 阅读 · 0 评论 -
composer的安装,使用
安装curl -sS https://getcomposer.org/installer | php这个命令使用 curl 下载 composer 的安装脚本,然后使用 php 进行安装,结果会在当前目录生成 composer.phar 文件。这个文件就是 composer 的二进制执行文件。 我们可以将 composer.phar 放到 /usr/local/bin/ 下,这样就可...原创 2018-04-24 21:45:47 · 463 阅读 · 0 评论 -
update-ca-trust 更新 ca 证书后,file_get_contensts() 报错 certificate verify failed
问题因为微信支付的HTTPS服务器证书升级,所以得安装DigiCert的根CA证书,我的系统是 CentOs,按照微信给出的方案是安装根证书管理包软件: yum install ca-certificates打开根证书动态配置开关: update-ca-trust force-enable将DigiCert的根证书文件复制到: /etc/pki/ca-trust/source/...原创 2018-03-28 16:22:35 · 14657 阅读 · 4 评论 -
PHP运行原理
sapi是PHP的入口层,是进入PHP内核的入口。nginx:启动一个主进程master,master进程再创建n个(一般根据cpu个数确定)worker进程。master进程只是用来管理worker进程,worker进程用来接收和处理请求。 php-fpm:也是启动一个主进程,主进程再管理子进程(worker)。通常我们可以配置多个进程池,每个进程池监听不同的接口,统一由master进程管...原创 2018-09-17 18:43:30 · 817 阅读 · 0 评论 -
PHP数组的结构,哈希表
PHP7之前的数组结构PHP7的数组结构变量结构zvalstruct _zval_struct { zend_value value; /* value */ union { struct { ZEND_ENDIAN_LOHI_4( zend_uchar typ...原创 2018-09-20 13:53:42 · 524 阅读 · 0 评论 -
PHP中安装扩展——mongo出现的问题
系统 windows7集成环境 xampp 1.8.3php-mongo.dll下载地址 http://pecl.php.net/package/mongo/1.6.0RC2/windows 选择对应的版本下载将php-mongo.dll放入php的ext文件夹下 修改php.ini。但是在安装mongodb扩展的时候 出现了PHP Warning:转载 2015-08-07 16:08:29 · 558 阅读 · 0 评论 -
PHPExcel用法(详细)
首先到phpexcel官网上下载最新的phpexcel类,下周解压缩一个classes文件夹,里面包含了PHPExcel.php和PHPExcel的文件夹,这个类文件和文件夹是我们需要的,把classes解压到你项目的一个目录中,重名名为phpexcel,开始喽,(代码都摘自自带实例)程序部分require_once './phpexcel/PHPExcel.p转载 2015-08-14 11:06:00 · 5682 阅读 · 0 评论 -
将一个数组随机打乱
/** *将数组随机打乱(数组下标为连续数字) * */function randArray($rArray){$len = count($rArray);foreach($rArray as $k=>$v){$r = mt_rand(0,$len - 1);$temp = $rArray[$k];$rArray[$k] = $rArray[$r];原创 2015-04-23 17:32:49 · 533 阅读 · 0 评论 -
thinkPHP系统常量、变量
Thinkphp常用系统变量指导除了常规变量的输出外,模板引擎还支持系统变量和系统常量、以及系统特殊变量的输出。它们的输出不需要事先赋值给某个模板变量。系统变量的输出必须以$Think. 打头,并且仍然可以支持使用函数。系统变量:包括server、session、post、get、request、cookie转载 2015-04-16 14:02:35 · 601 阅读 · 0 评论 -
PHP cURL用法(抓取网页)
使用PHP的cURL库可以简单和有效地去抓网页。你只需要运行一个脚本,然后分析一下你所抓取的网 页,然后就可以以程序的方式得到你想要的数据了。无论是你想从从一个链接上取部分数据,或是取一个XML文件并把其导入数据库,那怕就是简单的获取网页内 容,cURL 是一个功能强大的PHP库。PHP中的CURL函数库(Client URL Library Function)curl_close转载 2015-04-17 11:36:25 · 407 阅读 · 0 评论 -
使用phpqrcode生成二维码
使用PHP QR Code生成二维码HP QR Code是一个PHP二维码生成类库,利用它可以轻松生成二维码,官网提供了下载和多个演示demo,查看地址:http://phpqrcode.sourceforge.net/下载官网提供的类库后,只需要使用phpqrcode.php就可以生成二维码了,当然您的PHP环境必须开启支持GD2。phpqrcode.ph转载 2015-04-29 11:57:17 · 392 阅读 · 0 评论 -
服务器变量 $_SERVER
ECHO 'REQUEST_URI : ' .$_SERVER['REQUEST_URI']. '';ECHO 'REQUEST_METHOD: ' .$_SERVER['REQUEST_METHOD']. '';ECHO 'REMOTE_ADDR : ' .$_SERVER['REMOTE_ADDR']. '';ECHO 'REMOTE_HOST原创 2015-04-27 14:23:27 · 374 阅读 · 0 评论 -
递归实现无限分类列表的读取(子类加空格缩进)
第一种,直接返回数组(二维)public function index(){ $id = 0; $list = $this->readNode($id); $this->assign('list',$list); $this->display(); } private function re原创 2015-04-10 13:15:17 · 395 阅读 · 0 评论 -
htaccess规则,appache伪静态
htaccess语法教程 apache服务器伪静态规则教程注:如果你是为了找 Discuz! 论坛的为静态规则的话,其实不用看这里,Discuz! 的后台有个链接点进去直接Copy就是了。PHPwind的我就不知道了,没用过,后台应该也有吧。这几天一直在研究Apache的重写规则,虽然网上有很多教程,不过发现大部分都是抄袭一个人的,一点都不全,所以我想写一个简单的易于理解转载 2015-04-30 17:07:20 · 427 阅读 · 0 评论 -
php图像处理常用函数
1、创建图像imagecreatefromstring(string $imagestr),从字符串中的图像流创建一个图像,返回一个图像标识(zhi)符其中的字符串流一般为 file_get_contents($filepath) 获取。imagecreatefromjpeg($filepath),从给定的路径创建一个图像,返回一个图像标识符,$filsepath所指向的是一个JP原创 2015-04-30 11:34:57 · 542 阅读 · 0 评论 -
PHP数组操作常用函数
1、array_reverse() 将原数组中的元素顺序翻转,创建新的数组并返回。2、array_push(array,value[,value2]) 将给定的值压入数组末尾,相当于入栈操作。注意:被插入的元素的下标是数字;如果是仅仅插入一个元素,不如使用array[]=$value,这样可以省去调用函数的开销;如果第一个参数不是数组,array_push() 将发出一原创 2015-05-04 14:17:01 · 362 阅读 · 0 评论 -
php header函数用法
Php代码 //定义编码 header( 'Content-Type:text/html;charset=utf-8 '); //Atom header('Content-type: application/atom+xml'); //CSS header('Content-type: text/css'); //Jav转载 2015-05-17 14:15:30 · 337 阅读 · 0 评论 -
phpExcel用法
下面是总结的几个使用方法include 'PHPExcel.php';include 'PHPExcel/Writer/Excel2007.php';//或者include 'PHPExcel/Writer/Excel5.php'; 用于输出.xls的创建一个excel$objPHPExcel = new PHPExcel();保存excel—2007格式$objWriter = n转载 2015-06-03 00:41:19 · 463 阅读 · 0 评论 -
curl基本知识
CURL函数库。curl_close — 关闭一个curl会话curl_copy_handle — 拷贝一个curl连接资源的所有内容和参数curl_errno — 返回一个包含当前会话错误信息的数字编号curl_error — 返回一个包含当前会话错误信息的字符串curl_exec — 执行一个curl会话curl_getinfo — 获取一个curl连接资源句柄转载 2015-08-14 18:12:39 · 405 阅读 · 0 评论 -
BOM文件头
类似WINDOWS自带的记事本等软件,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB0xBF,即BOM)。它是一串隐藏的字符,用于让记事本等编辑器识别这个文件是否以UTF-8编码。对于一般的文件,这样并不会产生什么麻烦。但对于PHP来说,BOM是个大麻烦。 PHP并不会忽略BOM,所以在读取、包含或者引用这些文件时,会把BOM作为该文件开头正文转载 2015-04-11 15:44:26 · 609 阅读 · 0 评论