PHP
文章平均质量分 64
PHP
mumu_wangwei
祝愿看到内容的各位都能不放弃自己。也许美好就在下个路口,你只需要做的就是停下来多看看这个美好的世界。浮生墓,主修“红尘道”,让我们在红尘中修行而不忘初心。
展开
-
【PHP】PHP实现RSA加密,解密,加签,验签
2.公钥用于对数据进行加密,私钥用于对数据进行解密;私钥用于对数据进行签名,公钥用于对签名进行验证。1.php RSA生成公私钥。原创 2024-01-02 00:27:53 · 901 阅读 · 0 评论 -
【PHP】php7.3的composer依赖升级为php8.0
1) 在win cmd下运行php –version显示为原来的版本5.5。好吧,其实已经有答案了,一开始没有反应过来,这个5.5是因为我配置了环境变量,所以一直指向我原来的PHP目录,导致composer失败。2)解决方案:在 我的电脑->属性->高级->环境变量 中添加最新的PHP版本为环境变量,但是必须在之前环境变量的前面,当然也可以把之前的PHP环境变量删除。3)重启cmd或phpstorm运行composer install 就可以了。我直接改这个然后composer update就报错了。转载 2023-08-11 21:36:41 · 282 阅读 · 0 评论 -
【PHP】php7.4自定义扩展的编写WINDOWS篇
标签: PHP 开发语言专区 php windows其实我们很少会用到windows下的扩展,不过作为开发人员,在window下开发比较方便,所以我们一般的做法是架设一个phpstudy_pro的环境,然后开发好以后再上传,这里就涉及扩展问题,不急,我们先做准备工作php7.4和之前的版本不一样,我们必须下载全新的工具包1、php-sdk-binary-tools这个从7.2以后就不能使用以前官网的了,我们到GIT下个最新的,下载地址:GitHub - microsoft/php-sdk-bin转载 2022-07-08 03:07:20 · 644 阅读 · 0 评论 -
【PHP】编写php扩展
第一步下载PHP的源代码,如php-5.4.16。解压后进入php-5.4.16\ext目录。输入 ./ext_skel –extname=myext,myext就是扩展的名称,执行后生成myext目录。ext_skel是PHP官方提供的用于生成php扩展骨架代码的工具。cd myext。可以看到php_myext.h、myext.c、config.m4等几个文件。config.m4是AutoConf工具的配置文件,用来修改各种编译选项。第二步修改config.m4,将dnl PHP_ARG_WITH(my转载 2022-07-08 02:34:48 · 397 阅读 · 0 评论 -
【PHP】工厂方法模式|多态工厂模式
<?php/**工厂方法模式|多态工厂模式*//**定义:工厂方法模式,先定义一个创建对象的接口,在子类中实例化类。工厂方法模式让一个类的实例化延迟到子类。属性:工厂方法模式属于类创建型模式。备注:抽象类不能被实例化*/interface Product{ public function getData(); public function setData($name);}class......原创 2018-03-12 14:29:45 · 417 阅读 · 0 评论 -
【PHP】观察着模式
<?php/** * 观察着模式 *//**定义:对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并自动 更新。思想:将实际扩展操作,降低到子类应用:登录成功后,发送邮件、写入日志*///主体接口interface Observable{ public function attach(Observer $observer); publi.........原创 2018-03-12 14:56:15 · 74 阅读 · 0 评论 -
【PHP】原型模式
<?php/**原型模式*//**定义:原型模式使用原型实例指定创建对象的种类,并且通过克隆这些原型创建新的对象。属性:原型模式属于对象创建型模式。*///抽象原型类interface Prototype{ public function shanllowCopy(); public function deepCopy();}//具体类class ConcretePrototyp......原创 2018-03-12 14:57:43 · 220 阅读 · 0 评论 -
【PHP】代理模式
<?php/** * 代理模式 * */class Proxy{ private $server = '192.168.0.249'; private $port = '9999'; private $protocol = 'http'; private static $url = ''; private static $obj = null; priva...原创 2018-03-12 15:00:07 · 81 阅读 · 0 评论 -
【PHP】简单工厂模式
<?php/*** 工厂模式*//**定义:简单工厂模式,定义一个工厂类,它根据参数的不同返回不同类的实例,被创建的实例通常具有共同的父类,简单工厂中用于创建实例的方法是静态的,属性:工厂模式属于类创建型模式。*/ abstract class Product{ protected $data=array(); // 强制要求子类定义这些方法 abstract protecte.........原创 2018-03-12 15:03:21 · 79 阅读 · 0 评论 -
解决composer报错:Could not find a version of package xxx/yyy
解决composer报错:Could not find a version of package xxx/yyy matching your minimum-stability (stable). Require it with an explicit version constraint allowing its desired stabilityblogdaren问题背景:compose...原创 2020-03-27 13:32:38 · 4784 阅读 · 3 评论 -
【PHP】PHP接口继承及接口多继承原理与实现方法
在PHP的接口中,接口可以继承接口。虽然PHP类只能继承一个父类(单继承),但是接口和类不同,接口可以实现多继承,可以继承一个或者多个接口。当然接口的继承也是使用extends关键字,要多个继承的话只要用逗号把继承的接口隔开即可。需要注意的是当你接口继承其它接口时候,直接继承父接口的静态常量属性和抽象方法,所以类实现接口时必须实现所有相关的抽象方法。现在你对PHP接口的继承有所了解了吧,下面的例子可供参考,代码如下结果:接口继承,要实现两个抽象方法平时经常做饭的人是:妈妈上面的示例是接口继承了一个接口原创 2022-07-06 19:42:10 · 369 阅读 · 0 评论 -
【PHP】自研框架QPHP,qphp框架使用
QPHP计划:1.C语言实现php连接池功能,php扩展形式2.php多线程的实现开发功能:1.qphp是一个轻量级的phpmvc框架框架执行时间:6毫秒,thinkphp执行时间:19毫秒2.支持mysql,oracle,memcache,redis3.jwt生成token,和验证4.增加简单路由功能5.新增命名空间namespace原创 2022-06-30 16:50:39 · 832 阅读 · 0 评论 -
【MYSQL】所有查询表中有2千万数据--sql如何优化
这条sql如何优化所有查询表中有2千万数据执行时间:2.913s执行时间: 0.005swhere 字段加索引,order by 字段加索引.where 字段索引优先于order by索引字段index (name,pwd,id)符合索引,where字段在前原创 2022-06-28 05:14:17 · 294 阅读 · 0 评论 -
【PHP】php压测,报错:通常每个套接字地址(协议/网络地址/端口)只允许使用
php 通常每个套接字地址(协议/网络地址/端口)只允许使用?php 多线程 cmd 命令行下编程时,操作 mysql_connect() 过多后导致错误:mysql_conncet 通常每个套接字地址(协议/网络地址/端口)只允许使用一次这个问题导致是因为系统的端口被 mysql 耗尽。查看Windows Server端口的连接数统计通过tcp协议连接127.0.0.1的2112号端口的连接数netstat -an -p tcp | find “127.0.0.1” | find /c “2112”ne原创 2022-06-28 14:14:22 · 1046 阅读 · 0 评论 -
【PHP】PHP变量内存释放
通过 PHP memory_get_usage() 函数获取当前进程占用的物理内存,比较得出:1、unset() 函数可以释放内存2、函数内部的局部变量在函数执行完成会自动释放看下面的代码:结果:2 --3550566-- 37966410-- 35508814 --355088第一列是行号结论在明显的地方可以使用 unset() 函数显示的回收内存,在功能复杂的场景下可以采用函数形式回收内存...原创 2022-06-28 06:11:26 · 1230 阅读 · 0 评论 -
【PHP】PHP二维数组按照多个字段进行排序
通过array_multisort 进行数组字段排序这里也是本篇主要要说的。官网对array_multisort函数的解释: 对多个数组或多维数组进行排序bool array_multisort ( array $ar1 [, mixed $arg [, mixed $... [, array $... ]]] )成功时返回 TRUE, 或者在失败时返回 FALSE.array_multisort() 可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。关联(string)键名保持不变转载 2022-06-24 23:16:19 · 1191 阅读 · 0 评论 -
【MYSQL】MySQL 百万级数据量分页查询方法及其优化
方法 1: 直接使用数据库提供的 SQL 语句语句样式: MySQL 中, 可用如下方法: SELECT * FROM 表名称 LIMIT M,N适应场景: 适用于数据量较少的情况 (元组百 / 千级)原因 / 缺点: 全表扫描, 速度会很慢 且 有的数据库结果集返回不稳定 (如某次返回 1,2,3, 另外的一次返回 2,1,3). Limit 限制的是从结果集的 M 位置处取出 N 条输出, 其余抛弃.方法 2: 建立主键或唯一索引, 利用索引 (假设每页 10 条)语句样式: MySQL 中, 可用如下转载 2022-06-24 22:37:27 · 2316 阅读 · 0 评论 -
【PHP】php多态
多态的含义是:同一类的对象收到相同消息时,会得到不同的结果。而这个消息是不可预测的。多态,顾名思义,就是多种状态,也就是多种结果。例1例2例2和例1没多少区别,不过代码中doprint函数的参数是一个接口类型的变量,符合“同一类型,不同结果”这一条件,具有多态性的一般特性,因此是多态例1中如果把doprint函数的obj参数看做一种类型(把所有弱类型看做一种类型),那也可以认为是多态,否则不是区别是否是多态的关键在于看对象是否属于同一类型php中父类和子类看做“继父”和“继子”关系,它们存转载 2022-06-21 13:51:02 · 831 阅读 · 0 评论 -
[Linux]VMware虚拟机Ubuntu20.04扩展系统磁盘空间
Ubuntu系统弹出ubuntu系统根目录空间不足提示文件系统根目录上的磁盘空间不足,卷文件系统根目录仅剩余的提示框框时,需要在现有的Ubuntu系统上扩展磁盘空间。1.关闭VMware中的Ubuntu系统2.在VMware面板中调整硬盘的大小VMware面板=》虚拟机(M)=》设置=》硬盘=》扩展=》调整成80G(根据实际需要调整大小)3.开启Ubuntu系统4.安装和使用gparted4.1.安装gparted$ sudo apt install gparted14.2.命令行启动转载 2022-05-21 03:56:08 · 901 阅读 · 0 评论 -
ubuntu-docker安装oracle11
docker pull iatebes/oracle_11gDocker image for Oracle Database 11g (database installed)Build from this guide :https://github.com/jaspeen/oracle-11gRun Oracle DB 11g from docker$ docker run -d -p 1521:1521 iatebes/oracle_11gOS usersroot/ins.原创 2022-05-21 02:48:51 · 316 阅读 · 0 评论 -
ubuntu20.04 -vm-扩展硬盘后30G后不能联网,没IP
之前虚拟机ssh连接没问题,今天竟然连不上了。打开虚拟机 ip a 网卡ens33没有iproot@ubuntu:~/Desktop# ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 sc...原创 2022-05-20 23:54:18 · 685 阅读 · 4 评论 -
Docker安装Oracle数据库
一、准备工作1.安装docker-ce (有docker老版本也可以直接使用)安装依赖的软件包yum install -y yum-utils device-mapper-persistent-data lvm2配置Docker的阿里云yum源1 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo2 安装docker-ce3 yum inst转载 2022-05-20 23:11:44 · 11750 阅读 · 4 评论 -
【Git】 github 使用token
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.fatal: Aut原创 2022-05-13 21:11:52 · 2952 阅读 · 0 评论 -
【PHP】composer 使用
命令行执行 composer init步骤:# 1. 输入项目命名空间# 注意<vendor>/<name> 必须要符合 [a-z0-9_.-]+/[a-z0-9_.-]+Package name (<vendor>/<name>) [root/test_composer]:yourname/projectname# 2. 项目描述Description []:这是一个测试composer init 项目# 3. 输入作者信息,直接回车..转载 2022-05-12 11:04:34 · 584 阅读 · 0 评论 -
【PHP】php Composer 安装使用
依赖管理Composer 不是一个包管理器。是的,它涉及 "packages" 和 "libraries",但它在每个项目的基础上进行管理,在你项目的某个目录中(例如vendor)进行安装。默认情况下它不会在全局安装任何东西。因此,这仅仅是一个依赖管理。这种想法并不新鲜,Composer 受到了 node'snpm和 ruby'sbundler的强烈启发。而当时 PHP 下并没有类似的工具。Composer 将这样为你解决问题:a) 你有一个项目依赖于若干个库。b) 其中一些库.....原创 2022-05-11 21:44:06 · 1727 阅读 · 0 评论 -
【PHP】php composer在windows、Linux下安装
Introduction#Composer is a tool for dependency management in PHP. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you.Dependency management#Composer isnota package manager in the same sens..原创 2022-05-11 21:38:17 · 207 阅读 · 0 评论