php基础
php_kevlin
厚德 博学 求真 至善
展开
-
PHP使用IMAP读取邮箱收邮件
【代码】PHP使用IMAP读取邮箱收邮件。原创 2023-03-07 16:06:35 · 710 阅读 · 1 评论 -
php7.1微信公众平台消息安全模式的加密及解密
【代码】php7.1微信公众平台消息安全模式的加密及解密。转载 2023-03-05 16:48:48 · 443 阅读 · 1 评论 -
php读取单个env文件
【代码】php读取单个env文件。转载 2023-02-09 17:08:20 · 428 阅读 · 0 评论 -
使用guzzlehttp进行curl请求
2.baseurl写地址(http://www.baidu.com),然后new client的第二个参数把路径写全。传统的为 $header =[‘Content-type: application/json’,…1.baseurl写全部的,然后new client的url参数为空。原创 2022-12-02 18:11:07 · 672 阅读 · 0 评论 -
分割excel文件
【代码】分割excel文件。原创 2022-10-27 11:29:29 · 215 阅读 · 0 评论 -
php多进程
php 多进程请求url原创 2022-09-19 15:23:10 · 107 阅读 · 0 评论 -
php导出百万数据
修改php.ini然后重启使php-fpm设置生效代码如下(示例):2.读入数据代码如下(示例):结果参考文章:http://www.884358.com/php-xlswriter文档地址:https://xlswriter-docs.viest.me/zh-cn/an-zhuang/原创 2022-07-05 14:16:43 · 410 阅读 · 0 评论 -
PHP脚本解释执行的机制
了解了PHP + Nginx 整体的处理流程后,我们接下来看一下PHP脚本具体执行流程,首先我们看一个实例:<?phpif (!empty($_POST)) {echo "Response Body POST: ", json_encode($_POST), "\n";}if (!empty($_GET)) {echo "Response Body GET: ", json_encode($_GET), "\n";}我们分析一下执行过程: php初始化执行环节,启动Zend引转载 2022-04-29 22:34:13 · 195 阅读 · 0 评论 -
PHP-FPM + Nginx 的工作机制
请求从Web浏览器到Nginx,再到PHP处理完成,一共要经历如下五个步骤:第一步:启动服务 启动PHP-FPM。PHP-FPM 支持两种通信模式:TCP socket和Unix socket; PHP-FPM 会启动两种类型的进程:Master 进程 和 Worker 进程,前者负责监控端口、分配任务、管理Worker进程;后者就是PHP的cgi程序,负责解释编译执行PHP脚本。 启动Nginx。首先会载入 ngx_http_fastcgi_module 模块,初始化转载 2022-04-29 22:31:07 · 457 阅读 · 0 评论 -
php的buffer缓存区
数据输出之前先进入缓存区,等所有程序执行完成之后再输出如何执行一行输出一行呢?命令行模式<?phpob_start(); //cli模式下默认关闭;for ($i=0;$i<100;$i++){ echo $i; sleep(1); ob_end_flush();}//结果 :每隔1s在终端输出数据web模式<?php//ob_start(); // web模式下默认开启 Apacheset_time_limit(0);ob_en.原创 2022-03-28 23:10:15 · 438 阅读 · 0 评论 -
php中...的用法
php在用户自定义函数中支持可变数量的参数列表。由…语法实现#包含...的参数,会转换为指定参数变量的一个数组function foo(...$args){ $sum = 0; foreach ($args as $v){ $sum += $v; } return $sum;}echo foo(1,2,3,4); //10#也可以使用...作为参数传递到函数中function add($a,$b){ return $a+$b;.原创 2022-01-11 17:32:41 · 3325 阅读 · 0 评论 -
php中soap的使用以及wsdl的生成
webservice webservice是一个部署在web服务器上的,向外界暴露出一个能过通过web进行调用的API。 顾名思义,就是基于WEB的服务。它使用WEB(HTTP)方式,接收和响应外部系统的某种请求;从而实现远程调用。wsdl( web service descroption language) web 服务描述语言 ;提供能办事的文档说明,通常由 xml 构成 ;soap简单对象访问协议提供请求的规范wsdl和soap虽然是web servi转载 2021-11-04 16:06:40 · 1055 阅读 · 0 评论 -
swagger入门
swagger.php用于生成swagger文件<?phpnamespace app\index\controller;/** * @SWG\Swagger ( * schemes={"https","http"}, * host="www.tp.cn", * basePath="/", * @SWG\SecurityScheme(securityDefinition="apikey",type="apiKey",nam原创 2021-10-21 14:33:40 · 395 阅读 · 0 评论 -
YAML入门教程
1.简介YAML 是 “Yet Another Markup Language” 的缩写(仍然是一种标记语言)。YAML的配置文件 后缀为 .yml ,如 : runob.yml。2.基本语法大小写敏感使用缩进表示层级关系缩进不允许使用 tab , 只允空格缩进空格数不重要 ,只要相同层级的元素左对齐即可'#' 表示注释3.数据类型YAML支持以下几种数据类型对象 : 键值对集合,又称为映射 / 哈希 / 字典数组 : 一组按次序排列的值 , 又称为序列/列表纯量 :原创 2021-10-19 16:51:39 · 297 阅读 · 0 评论 -
从已有安装包(vendor)恢复 composer.json
...转载 2021-09-23 09:54:36 · 602 阅读 · 0 评论 -
php的declare命令
定义php中的declare结构用来设定一段代码的执行指令declare用于执行3个指令:ticks,encoding,strict_types作用域declare结构用于全局范围,影响到其后的所有代码(但如果有declare结构的文件被其他文件包含,则对包含他的父文件不起作用)1.ticksdeclare(ticks=1) {//代码}||declare(ticks=1);两者相等//作用://解释器每执行N条可计时的低级语句就会发生的时间 declare(directiv原创 2021-06-08 18:33:27 · 2615 阅读 · 2 评论 -
PHP注解
1.定义注解功能使得代码中的声明部分都可以添加结构化、机器可读的元数据, 注解的目标可以是类、方法、函数、参数、属性、类常量。 通过 反射 API 可在运行时获取注解所定义的元数据。 因此注解可以成为直接嵌入代码的配置式语言。通过注解的使用,在应用中实现功能、使用功能可以相互解耦。 某种程度上讲,它可以和接口(interface)与其实现(implementation)相比较。 但接口与实现是代码相关的,注解则与声明额外信息和配置相关。 接口可以通过类来实现,而注解也可以声明到方法、函数、参数、属性、类原创 2021-06-06 20:23:37 · 2307 阅读 · 2 评论 -
PHP匿名类
1.可以创建一次性的简单对象<?phpclass Logger{ public function log($msg) { echo $msg; }}$util = new stdClass();$util->setLogger(new Logger());$util->setLogger(new class{ public function log($msg) { echo $msg; }});2原创 2021-05-21 18:40:29 · 297 阅读 · 0 评论 -
PHP7和PHP5区别
PHP7比PHP5.0 ~ 5.6快了近5倍,同时还降低了对系统资源的占用。主要是PHP7对Zend引擎进行了深度优化。之前在书上看到过两者比较全面的区别,回头去翻了翻书【眼过千遍,不如手过一遍啊】,特记录如下。分三个方面来比较:底层优化语法变化性能变化0、增加抽象语法树(AST)。PHP5:PHP代码在语法解析阶段直接生成opline指令,执行器直接执行opline指令。PHP7: PHP代码解析生成抽象语法树,然后将抽象语法树编译成opline指令。解耦编译器和执行器。1、Nati转载 2021-05-16 22:59:26 · 619 阅读 · 0 评论 -
PHP中用于精确计算的bcmath扩展
1.简介 对于任意精度的数学,PHP提供了支持用字符串表示的任意大小和精度的数字的二进制计算, 最多为2147483647-1(或0x7FFFFFFF-1)。2.含义(1)2个任意精度数字的加法计算$v = bcadd(1.11,2.222,8);var_dump($v); //结果:string(10) "3.33200000"(2)2个任意精度数字的减法计算$v = bcsub(1.11,2.222,8);var_dump($v); //结果:string(11)原创 2021-04-26 12:38:43 · 555 阅读 · 0 评论 -
PHP中trait的特性
1.trait简介1.1 特性(1)优先级:当前类中的方法 > trait中的方法 > 基类中的方法(2)多个trait使用,分隔(3)trait 冲突使用insteadof操作符号来指定使用冲突方法中的哪一个(4)as操作符可以为方法设置别名,也可以修改trait中的方法的访问控制(5)其他trait也可以使用trait。(6)Traits 可以被静态成员静态方法定义。(7)在引用Trait时,使用了use关键字,use关键字也用来引用命名空间。两者的区别在于,引用Trait翻译 2021-04-26 09:42:21 · 234 阅读 · 1 评论 -
php中abstract和interface的区别
<?php// 1.声明抽象方法的必须声明为抽象类//2.抽象类不能被实例化 new AbstractClass();会报错//3.抽象方法不能定义具体功能实现,只是声明其调用方式,不能呢过定义其具体功能实现abstract class AbstractClass{ abstract protected function getValue(); abstract protected function getPrefixValue($prefix); public f翻译 2021-04-25 10:26:58 · 463 阅读 · 0 评论 -
PHP对二维数组中的某个字段的值进行排序
/** *二维数组根据字段进行排序 *$field 字段名 *SORT_ASC 升序 *SORT_DESC 降序 */function arraySequence($array, $field, $sort = 'SORT_DESC'){ $arrSort = array(); foreach ($array as $uniqid => $row) ...原创 2019-03-20 16:07:25 · 861 阅读 · 0 评论 -
php遍历文件夹
代码如下:<?php//遍历文件夹下面的所有文件和目录$dir = "F:/web/www/tp6";//dirList1($dir);function dirList1($dir){ if (is_dir($dir)) { ; //打开文件句柄 if (( $resource = opendir($dir)) !==false){ while (($file = readdir($resource))!==fal原创 2020-05-21 20:52:16 · 294 阅读 · 0 评论 -
原生php实现账单功能
由于合租,在一块做饭缴纳水电费等等这样的消费,为了公开透明,我专门花一下午做了一个账单记录的小demo,相关的消费力求做到公开透明这个项目做完复习了并且学到了很多东西,挺有成就感。代码:add.php<?phpclass MYSQL{ private static $conn =false ; protected $config = array(// ...原创 2020-03-06 10:52:28 · 655 阅读 · 0 评论 -
php底层运行机制与原理
php底层运行机制与原理 翻译 ...转载 2019-12-11 23:34:24 · 170 阅读 · 0 评论 -
面向对象的PHP初学者
原文链接 理解面向对象的编程面向对象编程是一种编码风格,允许开发人员将类似的任务分组到类中。这有助于保持代码遵循“不要重复自己”(DRY)和易于维护的原则。“面向对象编程是一种编码风格,允许开发人员将类似的任务分组到类中。”DRY编程的一个主要好处是,如果程序中的一条信息发生变化,通常只需要进行一次更改即可更新代码。开发人员最大的噩梦之一就是维护代码,一遍又一遍地声明数据,...转载 2018-11-08 22:19:03 · 149 阅读 · 0 评论 -
cgi,fastcgi,php-cgi,php-fpm之间的关系
参考文章:https://segmentfault.com/q/1010000000256516http://www.thinkphp.cn/topic/42338.html这篇文章写的挺好:https://blog.csdn.net/belen_xue/article/details/65950658cgicgi:全称是“公共网关接口”(Common GatewayInterface),HTTP...原创 2018-04-26 22:06:28 · 371 阅读 · 0 评论 -
cookie和session的区别
参考文章:https://www.jianshu.com/p/c0a7bcba8987https://www.cnblogs.com/okzzx/p/7006912.html1.CookieCookie是一种存储在远程客户端并以此来跟踪和识别用户的机制。简单的说,cookie是web服务器暂时存储在用户硬盘上的一个文本文件,并随后被web浏览器读取。当用户再次访问web网站时,网站通过读取cook...原创 2018-04-25 20:57:14 · 3918 阅读 · 0 评论 -
php正则表达式
正则表达式的作用:分割,查找,匹配,替换字符串分隔符:正斜线(/)hash符号(#)以及取反符号(~)通用原子:\d,十进制的0-9\D,取反,除了0-9\w,数字,字母,下划线\W,取反\s, 空白符\S,取反元字符:. :除了换行符任意字符* :匹配前面的内容出现0次一次或者多次? : 匹配前面的内容出现0次或者一次^ :必须以它开头$ : 必须以它结尾+ : 匹配前面的内容出现一次或者多...原创 2018-04-24 11:49:38 · 276 阅读 · 0 评论 -
面向对象知识点
面向对象编程第 1 章 类与对象................................................................................................................ 11.1 学习技术的套路 ...转载 2018-12-26 21:47:59 · 1218 阅读 · 0 评论 -
ORM是什么?
ORM文字概念ORM代码实现一、ORM简介 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。那么,到底如何实现持久化呢?一种简单的方案是采用硬编码方式,为每一种可...转载 2019-04-04 10:00:58 · 296 阅读 · 0 评论 -
oauth2.0 原理
oauth2.0的原理在OAuth 2.0中,术语“授权类型”是指应用程序获取访问令牌的方式。具体流程如下(原理)1.应用程序打开浏览器以将用户发送到OAuth服务器2.用户看到授权提示并批准应用程序的请求3.使用查询字符串中的授权代码将用户重定向回应用程序4.应用程序交换访问令牌的授权代码可以看一下这两篇文章:http://www.ruanyifeng.com/blog/2014/...原创 2019-03-27 12:08:55 · 369 阅读 · 0 评论 -
PHP 页面静态化/纯静态化/伪静态化
转载:https://www.cnblogs.com/caoruiy/p/4698938.html概念PHP静态化分为:纯静态化 和 伪静态化;纯静态化又分为:局部静态化 和 完全静态化纯静态化:是把PHP生成的动态页面保存成静态的html文件,用户访问该静态页面,而不是用户每一次访问都重新生成一张相同的网页,优点就是减小服务器开销, 局部静态化:是生成的静态文件中,有局部的数据...转载 2019-03-28 11:21:33 · 227 阅读 · 0 评论 -
token在浏览器和服务端接收和发送
1.使用header客户端index.html<html><head> <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script><style> .oc{ width: 200px; ...原创 2019-03-28 19:36:37 · 5371 阅读 · 1 评论 -
PHP 利用 curl 发送 post get del put patch 请求
PHP 利用 curl 发送 post get del put patch 请求 参考地址 PHP cURL 函数概述PHP支持的由Daniel Stenberg创建的libcurl库允许你与各种的服务器使用各种类型的协议进行连接和通讯。libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。...转载 2019-03-29 10:55:55 · 447 阅读 · 0 评论 -
必须掌握的Cookie知识点在这里
一、诞生背景爬虫系列教程的第一篇:HTTP详解中我们便说过HTTP的五大特点,而其中之一便是:无状态HTTP无状态:服务器无法知道两个请求是否来自同一个浏览器,即服务器不知道用户上一次做了什么,每次请求都是完全相互独立。早期互联网只是用于简单的浏览文档信息、查看黄页、门户网站等等,并没有交互这个说法。但是随着互联网慢慢发展,宽带、服务器等硬件设施已经得到很大的提升,互联网允许人们可以做更多...转载 2019-07-23 09:47:13 · 230 阅读 · 0 评论 -
php文件目录操作相关
1.打开文件函数fopen():用于打开一个文件,打开时需要指定打开模式打开模式如果文件不存在,不会自动创建r:只读模式打开,并且将文件指针指向文件内容开头r+:读写打开,并且将文件指针指向文件内容开头; 如果文件不存在,则会自动创建w:只写模式打开,并且将文件大小设置为0(清空文件内容)w+:读写模式。 如果文件不存在,则会自动创建a:追加的写入方式,并且将文件的指针指向文件的末尾 a+:追加的...原创 2018-04-24 11:49:28 · 247 阅读 · 0 评论