
php
weixin_45627802
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
curl post 延时长原因及解决方案
原因:https://www.jianshu.com/p/154c310748db解决方案:https://www.e-learn.cn/topic/1471286原创 2022-02-08 15:31:52 · 527 阅读 · 0 评论 -
APM工具
Zipkinphp插件composer require openzipkin/zipkin原创 2021-07-29 12:30:47 · 112 阅读 · 0 评论 -
php curl和解压
get/post json请求function getCurlData($url,$type="get", $headerData, $data=array(),$timeout = 30){ //对空格进行转义 $url = str_replace(' ','+',$url); if ($type == "get") { if (!empty($data) && is_array($data)) {原创 2021-02-02 14:12:51 · 344 阅读 · 0 评论 -
yii2 缓存实现静态
yii缓存一共分为四种,分别为数据缓存,片段缓存,页面缓存,http缓存。缓存方式,文件存储缓存(yii\caching\FileCache),apc扩展缓存(yii\caching\ApcCache),数据库缓存(yii\caching\DbCache)缓存依赖:DbDependency,DbQueryDependency,ExpressionDependency,FileDependency,TagDependency,ChinedDependency创建缓存依赖$fileDependency原创 2021-01-07 11:20:57 · 327 阅读 · 0 评论 -
认证和授权
认证一种是session会话状态,信息保存在服务器端;一种是客户端发送每一个请求的同时带一个 secret access token 来验证用户。因为一个 access token 可以用来确定一个唯一的用户和验证这个用户, API Requests 应该总是通过 https 协议来传输, 以防止 man-in-the-middle (MitM) 攻击。HTTP Basic Authentication;客户端将用户名和密码中间用“:”分隔合并,并将合并后的字符串用BASE64编码,在每次请求数据 时原创 2021-01-05 17:27:29 · 934 阅读 · 0 评论 -
php 解释型语言
编译型语言使用专门的编译器,针对特定平台一次性翻译成该平台硬件执行的机器码;一次编译,循环使用;c,c++,objective-c等都属于编译型语言;它的编译和执行是分开的,先编译成二进制可执行文件,然后在次执行优势:执行速度快;消耗的内存更少;劣势:依赖平台。解释型语言程序运行将源程序预编译成中间语言,然后再由解释器执行中间语言,每次执行解释型语言的程序都需要进行一次编译,不能脱离解释器独立运行;c#,php,java,python等都是解释型语言。优势:跨平台;安全性。劣势:执行速度慢,消原创 2020-12-31 11:14:25 · 433 阅读 · 0 评论 -
rabbitmq
RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的。它是用来接收、存储和发送消息(message)这种二进制数据的。安装Erlang官网下载地址:http://www.erlang.org/RabbitMQ官网下载地址:https://www.rabbitmq.com/php amqp模块下载地址:http://pecl.php.net/package/amqp,windows环境需要将php_amqp.d原创 2020-09-19 21:00:44 · 217 阅读 · 0 评论 -
秒杀系统
通常的秒杀是大量的用户抢购少量的商品,类似这样的需求只需要简单的进行库存缓存,就能在实际创建订单前过滤大量的流量。当创建订单成功,才通知客户段让用户进行后续的地址,优惠券信息确认,减少对数据库冲击,也过滤掉大部分的客户。一定时间内没有付款,则将货品退回库存。单个 Redis 命令的执行是原子性的,但 Redis 没有在事务上增加任何维持原子性的机制,所以 Redis 事务的执行并不是原子性的。watch numOK127.0.0.1:6379> multiOK127.0.0.1:6379原创 2020-09-18 17:43:31 · 411 阅读 · 0 评论 -
php环境安装
centos + apache + mysql + phpapacheyum install -y httpdsystemctl start httpd.servicesystemctl status httpd.servicesystemclt enable httpd.servicefirewall-cmd --zone=public --add-port=80/tcp --permanentfirewall-cmd --reloadfirewall-cmd --list-ports原创 2020-09-10 12:31:30 · 122 阅读 · 0 评论 -
数组与链表的区别
逻辑内存数组必须事先定义固定的长度从栈中分配空间,自由度小,插入、删除数据项时,需要移动其它数据项,非常繁琐链表动态进行存储分配,数据结构包括队列,栈,双向链表等从堆中分配空间,自由度小大,可以适应数据动态地增减的情况,且可以方便地插入、删除数据项php数组是由哈希表和链表实现。...原创 2020-09-09 10:21:59 · 95 阅读 · 0 评论 -
paypal订阅
包。composer require paypal/rest-api-sdk-phppaypal 沙箱账号。https://developer.paypal.com/developer/applications创建升级计划,并激活curl -v -X POST https://api.sandbox.paypal.com/v1/payments/billing-plans/ \-H "Content-Type: application/json" \-H "Authorization:.原创 2020-09-07 14:19:07 · 677 阅读 · 0 评论 -
web攻击
XSS:跨站脚本攻击可分为存储型XSS:如攻击者可能在用户提交保存到服务器端的数据里输入恶意脚本(),服务端没有验证直接存入数据库,下次用户再访问拿出来时,就会执行该恶意脚本。反射性XSS:脚本代码加入URL地址的请求参数里,请求参数进入程序后在页面直接输出,用户点击类似的恶意链接就可能受到攻击。目前防御XSS主要有如下几种方式:过滤特殊字符避免XSS的方法之一主要是将用户所提供的内容进行过滤(如上面的script标签)。addslashes进行转义。SQL注入:这是最常见的 SQL注入攻击原创 2020-08-20 10:51:52 · 143 阅读 · 0 评论 -
Javascript 到 PHP 加密通讯的简单实现
对于大多数网站来说,大部分数据往往没必要搞这么严密,可以选择性地只针对某些重要的小数据进行加密,例如密码。对于小数据量加密来说,可以没必要使用整个流程,只使用RSA即可,这样将大大简化流程。为什么是小数据量?因为相对于对称加密来说,非对称加密算法随着数据量的增加,加密过程将变的巨慢无比。所以实际数据加密一般都会选用对称加密算法。因此PHP中的openssl扩展公私钥加密函数也只支持小数据(加密时117字节,解密时128字节)。网上已有一些AES、RSA的开源Javascript算法库,在PHP中更可直接原创 2020-08-20 09:55:59 · 253 阅读 · 0 评论 -
php 自定义异常捕捉
<?php// 用户自定义错误处理set_error_handler(function ($error_no, $error_msg, $error_file, $error_line) { switch ($error_no) { case E_WARNING: $level_tips = 'PHP Warning: '; break; case E_NOTICE: $level_ti原创 2020-07-03 11:10:18 · 391 阅读 · 0 评论 -
php运行模式
PHP的所有应用程序都是通过WEB服务器(如IIS或Apache)和PHP引擎程序解释执行完成的,工作过程:(1)当用户在浏览器地址中输入要访问的PHP页面文件名,然后回车就会触发这个PHP请求,并将请求传送化支持PHP的WEB服务器。(2)WEB服务器接受这个请求,并根据其后缀进行判断如果是一个PHP请求,WEB服务器从硬盘或内存中取出用户要访问的PHP应用程序,并将其发送给 PHP引擎程序。(3)PHP引擎程序将会对WEB服务器传送过来的文件从头到尾进行扫描并根据命令从后台读取,处理数据,并动态原创 2020-06-05 16:51:17 · 178 阅读 · 0 评论 -
面试
1.nginx通信模块?Nginx Web服务器主要就是各种模块的工作。因此我们需要了解各种模块的大致功能及其分类。一、模块分类及其作用1、核心模块:HTTP模块、EVENT模块和MAIL模块等;HTTP 模块:用来发布http web服务网站的模块。event模块:用来处理nginx 访问请求,并进行回复。mail 模块 :负责邮箱处理和发布的。2、基础模块:HTTP Access...原创 2020-04-29 17:48:31 · 129 阅读 · 0 评论 -
mongodb php
mongodb 命令行连接/** 创建数据库 **/use DATABASE_NAME;/** 查看所有数据库 **/show dbs;/** 删除数据库 **/db.dropDatabase();/** 删除集合 **/db.collection.drop();/** 查看所有集合 **/show tables/** 创建集合 **/db.createCollecti...原创 2020-04-16 09:19:21 · 181 阅读 · 0 评论 -
fecmall
基于yii2框架开发的电商系统,扩展性强,安全性高,框架层面应对高并发部署, 适合用户搭建属于自己的小型,中型电商系统。开源电商系统,遵循BSD-3-Clause开源协议。Controller层只负责调度, Model只负责数据库映射,中间的处理逻辑由block来完成,View层 负责显示,这样各司其职, 以免造成controller文件过于庞大。加入独立功能块,有点类似Yii2的Widg...原创 2020-01-08 17:47:58 · 995 阅读 · 0 评论 -
PSR
PSR-0:自动加载标准,2014-10-21该标准已经被废弃,使用PSR-4替代,不再细讲PSR-1:基本的编码风格标签:<?php ?>或<?= ?>编码:PHP文件必须使用无BOM的UTF-8编码类名:类名必须使用驼峰式常量:全部是用大写,并且使用下划线(_)分开方法:类的方法必须使用小写字母开头的驼峰式(camelCase)命名。PSR-2:编码风格(...原创 2019-12-26 17:27:31 · 336 阅读 · 0 评论 -
php精度
ini_set('precision', -1);ini_set('serialize_precision', -1);$a = 35;$b = -34.99;echo $b;echo '<br />';echo json_encode($b);echo '<br />';echo ($a +$b);echo '<br />';echo bc...原创 2019-11-12 10:04:33 · 339 阅读 · 0 评论 -
composer
编写composer.json先看一个示例:Copy{“name”: “jenner/message_queue”,“description”: “php message queue wrapper”,“license”: “MIT”,“keywords”: [“message queue”],“version”: “1.0.0”,“authors”: [{“name”: “...原创 2019-11-07 17:49:29 · 187 阅读 · 0 评论 -
使用PHP自带的opcache开启性能加速
APC与Opcache都是字节码缓存也就是,PHP在被编译的时候,首先会把php代码转换为字节码,字节码然后被执行。php文件第二次执行时,同样还是会重新转换为字节码,但是很多时候,文件内容几乎是一样的,比如静态HTML文件,生成后内容许久都不会改变,用户访问请求直接由服务器读取响应给客户端浏览器。都不用经过PHP进行解析构建了。内存中的字节码数据,可以直接缓存进行二次编译。这样程序就会快一些...原创 2019-11-04 16:16:06 · 285 阅读 · 0 评论 -
php备忘录
php开启Gzip压缩if (extension_loaded('zlib')){ ob_end_clean(); ob_start('ob_gzhandler'); }原创 2019-10-29 14:38:00 · 239 阅读 · 0 评论 -
装饰模式
<?phpinterface Food{ public function name(); public function price();}class ShouZhuaBing implements Food{ public function name() { // TODO: Implement name() method. ...原创 2019-10-24 11:35:08 · 92 阅读 · 0 评论 -
安全组合模式
<?phpabstract class Component{ protected $name; public function __construct($name) { $this->name=$name; } abstract public function display();}class Dir extend...原创 2019-10-24 10:57:55 · 416 阅读 · 0 评论 -
代理模式
<?phpinterface Subject{ public function action();}class RealSubject implements Subject{ public function action() { // TODO: Implement action() method. echo 'action'...原创 2019-10-24 10:13:03 · 98 阅读 · 0 评论 -
模板模式
<?phpabstract class Phone{ final public function run(){ $this->powerOn(); $this->showLogo(); $this->callUp(); } protected function powerOn(){ e...原创 2019-10-23 17:34:16 · 174 阅读 · 1 评论 -
命令模式
<?phpclass Receiver{ public function action() { echo "执行任务"; }}interface CommandInterface{ public function execute();}class Command implements CommandInterface{ ...原创 2019-10-23 17:25:49 · 103 阅读 · 0 评论 -
迭代器模式
<?phpnamespace Baijunyao\DesignPatterns\Iterator;/** * 容器接口 * * @package Baijunyao\DesignPatterns\Iterator */interface ContainerInterface{ /** * 增加一个名字 * * @param $name...原创 2019-10-23 17:07:35 · 94 阅读 · 0 评论 -
观察者模式
<?php/** * Subject,that who makes news */class Newspaper implements \SplSubject{ private $name; private $observers = array(); private $content; public function __construct($...原创 2019-10-23 15:36:58 · 102 阅读 · 0 评论 -
Thinkphp
thinkphp5.2改名为6.0并且官网不再提供源码下载,需要通过composer工具下载。在packagist中查找topthink,然后使用composer下载。使用php自带服务器,启动think脚本。框架的源码移到了vendor里。helper.php里面是助手函数或辅助函数。使用环境变量进行统一配置: .env环境变量管理器:think\Facade\Envthinkp...原创 2019-10-23 12:03:13 · 208 阅读 · 0 评论 -
websocket
javasciptvar ws=new WebSocket("wss://.......");ws.onopen=function(evt){ ws.binaryType='arraybuffer'; ws.send("hello world"); console.log(ws.readState);};ws.onmessage=function(evt){ var a=[1...原创 2019-09-19 17:32:32 · 112 阅读 · 0 评论 -
正则表达式
表达式描述?0-1*0-n+1-n()子表达式.匹配除换行符\n之外得任何单字符|将下一字符标记为特殊字符^匹配输入字符串得开始位置,在方括号表达式表示不接收该字符集合{n,m}表示出现次数两项之间选择一个utf8中文:0x4e00-0x9fa5gb2312:0xb0-0xf7 0xa1-0xfepre...原创 2019-09-23 10:09:00 · 140 阅读 · 0 评论 -
文件
pathinfo,会返回包含basename,filename,extension的数组。<?php $path="https://dev.fbeecloud.com/aa.php?aa"; $path1="https://dev.fbeecloud.com/aa.php"; $path2="https://dev.fbeecloud.com"; $path3="aa/bb"; ...原创 2019-09-23 10:35:38 · 99 阅读 · 0 评论 -
会话控制技术
由于http是无状态协议,所以在web开发中需要用到会话控制技术。建立连接=发送请求=响应请求=关闭连接cookie数据主要存储在浏览器,客户端可以禁止cookie的使用,也可以被篡改所以cookie是不安全的。setcookie();COOKIE();session数据主要存储在服务器端,需要cookie来传递sessionid,如果客户端不支持cookie,可以修改sessionid...原创 2019-09-23 11:01:35 · 161 阅读 · 0 评论 -
面向对象
面向对象编程继承php是单继承的,如果需要多继承,可以使用trait。类权限控制修饰符public,是公有类成员,可以在任何地方被访问,可以被类,子类,对象访问protected,是受保护的类成员,可以被自身和子类访问,不能被对象访问。private,是私有的类成员,只能被自身访问。子类继续父类,方法重写可以是覆盖或继承。extend。多态接口的方法实现可以有很多,不需要知道对...原创 2019-09-23 11:45:52 · 109 阅读 · 0 评论 -
笔记
$pdo=new PDO("mysql:127.0.0.1;dbname:user",$username,$pass);$statment=$pdo->prepare($sql);$statment->execute([]);$statment->fetchAll();$statment->rowCount();$client=new swoole_client...原创 2019-09-23 12:07:37 · 162 阅读 · 0 评论 -
swoole
use Swoole\Redis\Server;//use Swoole\Coroutine\Redis;$http = new swoole_http_server("0.0.0.0", 9501);global $redis; $redis = new Redis(); $redis->connect('127.0.0.1', 6379); $val = $redis-...原创 2019-09-24 10:27:26 · 629 阅读 · 0 评论 -
swoole视频直播
$serv=new swoole_websocket_server("0.0.0.0",9501);$client=array();$serv->on("open",function($serv,$req)use($client){ //echo 'connect'.$req->fd; $client[]=$req; //var_dump($client); $serv-&...原创 2019-09-25 12:25:02 · 1387 阅读 · 0 评论 -
进程,线程,协程
一、什么是进程进程是程序执行是的一个实例,进程能够分配给cpu和内存等资源。进程一般包括指令集和系统资源,其中指令集就是你的代码,系统资源就是指cpu、内存以及I/O等。进程是一个程序在一个数据集中的一次动态执行过程,可以简单理解为“正在执行的程序”,它是CPU资源分配和调度的独立单位。进程一般由程序、数据集、进程控制块三部分组成。我们编写的程序用来描述进程要完成哪些功能以及如何完成;数据集...原创 2019-10-06 19:58:56 · 111 阅读 · 0 评论