自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 windows使用docker运行TP6使用swoole内置http服务

windows使用docker运行TP6使用swoole内置http服务

2024-03-15 17:55:47 443

原创 Redis基础特性及应用练习-php

Redis基础特性及应用练习-php

2023-09-06 16:49:22 509

原创 记录了解php8-JIT

记录了解php8-JIT

2023-09-06 16:48:35 228

原创 php中nts和ts

PHP语言解析器:官方提供了2种类型的版本,线程安全(TS)版和非线程安全(NTS)版。

2023-08-11 18:51:06 857

原创 记录linux使用dnmp环境

如果还是像 8.0 的配置一样写 php:${PHP80_VERSION}-fpm-alpine3.13,那么会提示 ERROR [internal] load metadata for docker.io/library/php:8.2.6-fpm-alpine3.13,即使更改最新的 alpine 版本也会报错,因此改为 php:8.2.6-fpm-alpine。----下载linux版 :docker-compose-linux-x86_64 (其实是一个可执行文件)

2023-07-04 10:36:48 199

原创 window操作php和java使用--php/java bridge

环境:jdk:https://www.cnblogs.com/evolve/archive/2019/11/11/11837869.htmlphp-java-bridge:http://php-java-bridge.sourceforge.net/pjb/download.php --下载完整JavaBridge.warApache Tomcat服务器:https://tomcat.apache.org/案例1使用JavaBridge.jar库 中内置了一个简单的 HTTP 服务器...

2022-01-22 09:47:11 516

原创 php8练习

match表达式<?php//1// $request_method = "post";// $status = match($request_method) { // 'post' => "post", // 'get', 'head' => "get_head", // default => throw new \Exception('Unsupported'), // };// var_dump($status);//2// class test1

2022-01-11 10:27:06 312

原创 php使用curl请求和json,xml,yaml解析,二进制传输数据

JSON://控制器的方法 验证接收请求,返回json字符串/** * @return string */public function ttt_json(){ $result = array("method" => null); if($_SERVER['REQUEST_METHOD'] == 'GET' ? true : false){ $result = array("method" => "GET","data" =&gt

2021-11-25 17:35:34 963

原创 记录php-面试

Redis持久化Redis”3“种持久化方式:RDB,AOF,RDB-AOF混合1.RDB:简单来说,对Redis做一个快照(利用fork)保存在磁盘上优点: - 结构紧凑体积小,加载速度快(相比AOF) - 可以做定期备份缺点: - 动作大、消耗大:全量操作对于磁盘、CPU、内存等均有消耗 - 无法做到"实时"备份 - 格式多变(Redis 3 4 5 6版本多次修改)2.AOF:简单说把Redis的每条写操作记录到日志中,例如set hello world优点:- RESP

2021-08-11 09:51:36 349

原创 php使用whoops调试库

使用Composer将Whoops安装到您的项目中:composer require filp/whoops在代码中注册并使用:$whoops = new \Whoops\Run;$whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler);$whoops->register();简单案例:require './vendor/autoload.php';$whoops = new \Whoops\Run;$whoo

2021-05-18 17:33:46 161

原创 简单使用PHPDocumentor为自己的代码生成文档

PHPDocumentor 是一个用PHP写的工具, 对于有规范注释的php程序, 它能够快速生成具有相互参照,索引等功能的API文档.1,PHPDocumentor安装:(方式一)通过下载PHARhttps://phpdoc.org/phpDocumentor.phar或下载从特定版本 https://github.com/phpDocumentor/phpDocumentor/releases。得到 phpDocumentor.phar 文件,(需要大于7.2.1的php才能运行)2,简单测

2021-05-09 17:49:08 214

原创 elasticsearch-php使用案例(二)拼音,ik分词

需要下载对应elasticsearch版本的IK分词器和拼音分词器IK分词器下载地址:https://github.com/medcl/elasticsearch-analysis-ikpinyin分词器下载地址:https://github.com/medcl/elasticsearch-analysis-pinyin/releases放到elasticsearch\plugins目录下require './vendor/autoload.php';use Elasticsearch\Cl.

2021-05-05 15:16:42 371

原创 php简单操作mysql锁机制

锁机制共享锁与排他锁共享锁(读锁):其他事务可以读,但不能写。排他锁(写锁) :其他事务不能读取,也不能写。对于MySQL来说,有三种锁的级别:页级、表级、行级页级的典型代表引擎为BDB。行级的典型代表引擎为INNODB。表级的典型代表引擎为MyISAM,MEMORY以及很久以前的ISAM。BDB 存储引擎采用的是页面锁(page-level locking),但也支持表级锁InnoDB 存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行.

2021-04-29 13:58:44 773 1

原创 php简单操作mysql存储过程和存储函数

在mysql建名为db_school数据库(InnoDB 类型),和account 表里面字段有简单介绍存储过程与存储函数:MySQL中提供存储过程与存储函数机制,我们姑且将存储过程和存储函数合称为存储程序。与一般的SQL语句需要先编译然后立即执行不同,存储程序是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,当用户通过指定存储程序的名字并给定参数(如果该存储程序带有参数)来调用才会执行。存储程序就是一条或者多条SQL语句和控制语句的集合,我们可以将其看作MySQL的批处理文件,当然,

2021-04-28 15:09:24 300

原创 php中使用mysql事务案例(学习)

mysql事务大概描述:1:练习操作在mysql建名为db_school数据库(InnoDB 类型),和account 表里面字段有<?php/** * Created by PhpStorm. * User: Administrator * Date: 2021/4/28 0028 * Time: 11:01 */ $link = new mysqli('127.0.0.1', 'root', 'root', 'db_school'); // 连接数据库 i

2021-04-28 11:50:37 139

原创 让SQL语句不执行默认排序,而是按照in语句的顺序返回结果

正常使用inselect order_id from study_order where order_id in('1','2','3','4') order by order_id;select order_id from study_order where order_id in('1','2','3','4') order by order_id desc;按照in语句的顺序返回结果select order_id from study_order where order_id in ('

2021-04-25 15:57:27 278

原创 php之websocket通信

html页面<!DOCTYPE html><html><head> <title>chatdemo</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1, maximum-scale=1, user-scalable=no"></head>&

2021-04-24 17:12:31 394

原创 php使用socket扩展通信

需要了解TCP/IP、UDP省略TCP/IP、UDP介绍Socket:socket是应用层和TCP/IP协议族通信的中间软件抽象层,socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在socket接口后面。一个生活中的场景。你要打电话给一个朋友,先拨号,朋友听到电话铃声后提起电话,这时你和你的朋友就建立起了连接,就可以讲话了。等交流结束,挂断电 话结束此次交谈。 生活中的场景就解释了这工作原理。2:--------------------------------------.

2021-04-24 16:53:56 763 4

原创 并发和并行的区别理解

解释一:并行是指两个或者多个事件在“同一时刻”发生;而并发是指两个或者多个事件在同一时间“间隔”发生解释二:并行是在不同进程上的多个事件,并发是在同一进程上多个事件。解释三:并发是在一台处理器上“同时”处理多个任务,并行是在多台处理器上同时处理多个任务来个比喻:并发是一个人同一时间“间隔”吃三个馒头,而并行是三个人同时吃三个馒头。例子:比如,我正在打游戏,现在有电话打进来,有个快递需要去楼下取一下。串行的方式:我必须打完游戏,才能去取快递。并行的方式:让女朋友帮忙取快递,继续打游戏。并发.

2021-04-24 11:40:27 1276

原创 PHP多进程学习(三)父进程与子进程的执行顺序,进程中共享数据

案例1<?php$pid = pcntl_fork(); if($pid == -1) { //错误处理:创建子进程失败时返回-1. die('fork error');} else if ($pid) { //父进程会得到子进程号,所以这里是父进程执行的逻辑 echo "parent \n"; //等待子进程中断,防止子进程成为僵尸进程。 pcntl_wait($status);} else { //子进程得到的$pid为0, 所以

2021-04-24 10:19:54 871 1

原创 PHP多进程学习(二)__fork起多个子进程,父进程的阻塞与非阻塞

在父进程中,fork返回新创建子进程的进程ID;在子进程中,fork返回0;如果出现错误,fork返回一个负值;<?php // //定义进程数量 // define("FORK_NUMS",5); // //用于保存进程pid // $pids = array(); // //我们创建5个子进程 // for ($i = 0; $i < FORK_NUMS; ++$i) { // $pids[$i].

2021-04-24 09:53:58 153 1

原创 PHP多进程学习(一)

须知孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那些子进程将成为孤儿进程。之后孤儿进程被init进程(进程号为1)所收养,由init进程对他们完成状态收集工作。僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程任然保存在系统中。这种进程为僵死进程。僵尸进程危害:如果进程不调用wait / waitpid的话, 那么保留的那段信息就不会释放,其进程号就会一直被占用,但是系统所能使用的进程号是有限的,如

2021-04-24 09:41:28 108

原创 PHP程序守护进程化

PHP命令行程序实现守护进程化有2种方法:一 、使用nohup守护进程化。nohup php myprog.php > log.txt &单独执行 php myprog.php,当按下ctrl+c时就会中断程序执行,会kill当前进程以及子进程。php myprog.php &,这样执行程序虽然也是转为后台运行,实际上是依赖终端的,当用户退出终端时进程就会被杀掉。二、使用PHP代码来实现function daemonize(){ $pid = pcntl_

2021-04-23 14:03:13 100

原创 php二位数组去重, 用in_array(),unset()函数

$arr = array( array( "name" => "a" ), array( "name" => "b" ), array( "name" => "c" ), array( "name" => "b" ), array( "name" => "c" ), array("name"=> "d"),

2021-04-22 16:46:14 156

原创 php-redis的排行案例

<?php/** * Created by PhpStorm. * User: Administrator * Date: 2021/4/22 0022 * Time: 14:56 */$Leader = new RedisDome();//模拟添加排名for($i=0; $i<10; $i++){ $Leader->addLeader("id_".$i,mt_rand(1,1000));}//-------var_dump($Leader->ge

2021-04-22 15:58:26 104

转载 PHP的Http请求类封装

记录笔记http.php<?php/** * Created by PhpStorm. * User: Administrator * Date: 2021/4/22 0022 * Time: 10:11 *///基于php的Http请求类封装// 设置URL和相应的选项$options = array( CURLOPT_URL => 'http://localhost/phpheguanbiao/http2.php', CURLOPT_HEADER =

2021-04-22 11:58:00 422

原创 redis秒杀超卖

思路:利用lpop移除并返回移除的值,失败返回false;当redis缓存中的商品数量不足则跳过减库存的步骤,redis的队列是原子性的,不管多少个请求过来都是一一处理的。在活动开始前设置 ,或提前入队要秒杀商品的数据//入队<?php$redis=new Redis();$redis->connect('127.0.0.1',6379);$store=10;for($i=0;$i<$store;$i++){ $redis->lpush('goods_store

2021-04-12 16:09:45 127

原创 宝塔搭建 TP6 分布式数据库:主从同步、读写分离

主从配置的前提条件1、MySQL版本一致;2、MySQL中的数据一致;主:192.168.16.135从:192.168.16.137在虚拟机中建两台服务器,两个都安装宝塔,将两个服务器的放火墙关闭systemctl stop firewalld.service两台虚拟机服务需要相互ping的通1:配置主服务器mysql#[必须]启用二进制日志 log-bin=mysql-bin #[必须]服务器唯一ID,默认是1,一般取IP最后一段 server-id=135重启。。进入

2021-03-31 16:07:30 2994

原创 Nginx基础-动静分离配置

记录笔记:1、为什么要做动静分离对于一些应用来说(比如网站),图片,css文件,js文件等静态资源不需要动态语言的支持,可以直接返回给客户端使用,如果这些静态资源跟着动态资源一样的流程,那就太浪费服务器资源了。所以,最好的办法是让他们分家,静态资源直接从nginx服务器返回,动态资源经过nginx转发给相应的服务执行后再返回客户端。动静分离的好处是可以为用户提供更好的使用体验,而不是一直等着服务器一次性将资源返回。2、Nginx实现动静分离2.1、nginx 配置(宝塔 安装的环境)设置网站

2021-03-06 15:41:43 547

原创 Nginx基础-负载均衡服务器

记录笔记:1:负载均衡负载均衡提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡有两方面的含义:首先,大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间;其次,单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高。2:负载均衡的分类二层负载均衡(mac)根据OSI模型分的二层负载,一般是用虚拟mac地址方式,外部对虚拟MAC

2021-03-06 10:29:19 133

原创 Nginx基础-Nginx配置文件

记录笔记:Nginx配置文件基本语法:配置文件由指令与指令块构成每条指令以;分号结尾,指令与参数间以空格符号分隔指令块以{}大括号将多条指令组织在一起使用#符号添加注释,提高可读性include语句允许组合多个配置文件以提升可维护性使用$符号使用变量 部分指令的参数支持正则表达式默认nginx.conf#运行用户,默认nginx,可不设置user nginx;#nginx进程,一般设置为何cpu核数一样worker_processes 2;#进程pid存放位置pid

2021-03-06 09:46:30 403

原创 全文搜索引擎Elasticsearch安装(Windows),elasticsearch-php使用案例

安装Elasticsearch1.首先要有JDK环境,确保JDK8及以上版本1.1:需要注册账号下载,可以自己注册,也可以网上搜账号https://www.oracle.com/java/technologies/javase-jdk11-downloads.html1.2:配置环境变量:创建变量JAVA_HOME,值是你安装jdk的路径然后编辑path添加变量2:安装Elasticsearch服务,选择window。(这里我安装了6.8.8版本)https://www.elasti

2020-10-23 11:13:36 490

原创 docker错误docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker da

运行docke出现时:docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.See ‘docker run --help’.开启docker服务systemctl start docker查看docker服务systemctl status docker

2020-10-16 11:34:06 107

原创 linux安装sphinx全文搜索,并php使用案例

请先装好lnmp环境,如没有装,参考https://blog.csdn.net/hgb24660/article/details/1089389631,去官网下载包http://sphinxsearch.com/这里我通过 wget 方式下载软件包,命令如下:wget http://sphinxsearch.com/files/sphinx-2.1.6-release.tar.gz2.加压该压缩包,命令如下:tar zxvf sphinx-2.1.6-release.tar.gz

2020-10-07 11:28:37 298 1

原创 本地虚拟机centos安装宝塔使用lamp环境并访问网站

去官网下载,https://www.bt.cn/yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh等待下载完成,会有登陆宝塔的域名账号密码,在window使用浏览器访问使用centos的ip地址http://ip:8888/xxxxxx/如果安装centos图像界面可以127.0.0.1http://

2020-10-06 15:00:31 708

原创 MySQL定时任务,和处理订单状态,定时取消

SHOW VARIABLES LIKE '%event_sche%'; //查看event是否开启SET GLOBAL event_scheduler = 1; //将事件计划开启SET GLOBAL event_scheduler = 0; //将事件计划关闭 ALTER EVENT eventName ON COMPLETION PRESERVE DISABLE; //关闭事件任务ALTER EVENT eventName ON COMPLETION PRESERVE ENABLE; //

2020-08-19 17:17:25 613

转载 图片压缩并同时保持清晰度

<?php/** * 图片压缩类:通过缩放来压缩。 * 如果要保持源图比例,把参数$percent保持为1即可。 * 即使原比例压缩,也可大幅度缩小。数码相机4M图片。也可以缩为700KB左右。如果缩小比例,则体积会更小。 * * 结果:可保存、可直接显示。 */class imgcompress{ private $src; private $image; private $imageinfo; private $percent = 0.5;

2020-08-10 17:53:07 450

原创 php将把xml转换成数组,并打印文本文件查看。

最近使用支付接口的时候,经常需要测试回调的参数内容进行后续的处理<?phpclass study{ /** * 递归生成目录 */ public function RecursiveMkdir($path){ if (!file_exists($path)) { $this->RecursiveMkdir(dirname($path)); @mkdir($path, 0777); } } /** * 把xml转换成数组

2020-08-06 10:45:01 122

转载 redis在PHP中的基本使用案例

//利用Redis类进行操作//实例化Redis类$redis = new Redis();//选择指定的redis数据库连接,默认端口号为6379$redis->connect('127.0.0.1', 6379);  //$redis->auth('设置的密码');//普通set/get操作$redis->set(‘library’, ‘predis’);...

2019-12-10 20:36:05 923 1

原创 thinkphp使用快递鸟-查看快递物流

首先你要注册快递鸟账号http://www.kdniao.com/登录后在用户管理后台申请会员服务(需要实名验证);订购物流查询(免费版)然后控制器代码public function actionLogistics(){ /** * Json方式 查询订单物流轨迹 */ //调用查询物流轨迹 //---...

2019-10-19 15:02:43 368

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除