PHP
文章平均质量分 55
伟伟哦
我只是一名小学生 能力一般 水平有限 一直抱着学习的态度
展开
-
AMQP 讲解
三、常规消息队列的流程跟特点MQ队列消息模型的特点队列消息模型的特点:1、消息生产者将消息发送到Queue中,然后消息消费者监听Queue并接收消息;2、消息被确认消费以后,就会从Queue中删除,所以消息消费者不会消费到已经被消费的消息;3、Queue支持存在多个消费者,但是对某一个消息而言,只会有一个消费者成功消费。3.1、MQ队列消息的生产与消费常规流程常用的MQ中间件产品 ActiveMQ、RabbitMQ、kafka等基本都是这样的流程基于AMQP协议① Producer生成消原创 2021-05-23 11:54:30 · 506 阅读 · 3 评论 -
php array_merge和+区别
对于+,当key相同时,不管key是字符还是数组,都是舍弃后面的结果;array_merge ,当key相同时,key是字符,则后面的覆盖前面的;key是数字,则不发生覆盖,会重新建立数组索引。<?php$arr1 = array('a'=>'PHP');$arr2 = array('a'=>'JAVA');//如果键名为字符,且键名相同,array_merge()后面数组元素值会覆盖前面数组元素值print_r(array_merge($arr1,$arr2)); //Ar.原创 2021-05-10 23:14:21 · 329 阅读 · 0 评论 -
php 类名和方法名相同(构造函数)
//php 5.6class father{public function __construct() { echo __METHOD__; }}class son extends father{//public function __construct() { // parent::__construct(); // echo __METHOD__;//}//方法名同类名相同如果没有__construct,会被当做构造函数。如果被当做构造函数,没有parent::__co原创 2021-05-06 23:23:01 · 306 阅读 · 0 评论 -
php SoapClient 调用 webservices 和 可以在WSDL或非WSDL模式下使用
SoapClient类为»SOAP 1.1和»SOAP 1.2服务器提供了一个客户端。可以在WSDL或非WSDL模式下使用。SoapClient {/* Methods */public __construct ( string|null $wsdl , array $options = [] )public __call ( string $name , array $args ) : mixedpublic __doRequest ( string $request , string $loc原创 2021-02-04 10:11:19 · 531 阅读 · 0 评论 -
php 二位数组去重
二维数组去掉重复值$array2D = array(array('whitename' => 'dsfsdfsdfs', 'whitepaas' => 42342352),array('whitename' => 'lss_ni321', 'whitepaas' => 124623),array('whitename' => '458223@qq.com', 'whitepaas' => 12775566),array('whitename' =>原创 2020-12-03 14:48:55 · 177 阅读 · 0 评论 -
php 时间转换成秒数 或者做倒計時
<?php//自定义函数:time2string($second) 输入秒数换算成多少天/多少小时/多少分/多少秒的字符串function time2string($second){ $day = floor($second/(3600*24)); $second = $second%(3600*24);//除去整天之后剩余的时间 $hour = floor($second/3600); $second = $second%3600;//除去整小时之后剩余的时间 $minute = f原创 2020-11-26 10:34:47 · 952 阅读 · 0 评论 -
laravel orwhere union all 查询统计分页sql語句
union allunion all查询统计总数量分表后多表,UNION 和UNION ALL查询分页union all查询统计总数量select sum(a.b) as num from (select count( ) as b from table_1 union all select count( ) as b from table_2) as a(注意这里要取个别名)分表后多表,UNION 和UNION ALL查询分页UNION ALL和 UNION 的区别UNION AL原创 2020-11-17 11:41:17 · 1063 阅读 · 0 评论 -
PHPExcel 详解
PHPExcel 下载PHPExcel插件慕课网学习文件格式 Excel2007原创 2020-10-28 00:17:41 · 4020 阅读 · 0 评论 -
PHP 多进程通信消息队列的使用 pcntl
PHP多进程通信-消息队列使用msg_get_queue —创建或附加到消息队列key邮件队列数字IDperms队列权限。默认值为0666。如果消息队列已经存在,perms将被忽略。msg_remove_queue() -销毁消息队列msg_receive() -从消息队列接收消息msg_send() -将消息发送到消息队列msg_stat_queue() -从消息队列数据结构返回信息msg_set_queue() -在消息队列数据结构中设置信息PHP多进程通信-消息队列使用...原创 2020-10-14 00:47:07 · 415 阅读 · 0 评论 -
树 二叉树的层次遍历 II
3 / \ 9 20 / \ 15 7 [ [15,7], [9,20], [3], ]function levelOrderBottom($root){ $res = []; if (!$root) return $res; $queue = []; array_push($queue...原创 2020-09-25 14:05:25 · 64 阅读 · 0 评论 -
PHP二叉树(二):平衡二叉树(AVL)
<?php//结点class Node{ public $key; public $parent; public $left; public $right; public $bf; //平衡因子 public function __construct($key) { $this->key = $key; $this->parent = NULL; $this->left转载 2020-08-21 16:54:17 · 126 阅读 · 1 评论 -
安装php7.2出现错误
configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distributionyum install -y libxslt-devel*PHP报错:Configure: error: freetype.h not foundyum install freetype-develconfigure: error: png.h not found.yum install libpngyum i原创 2020-08-18 00:43:26 · 659 阅读 · 0 评论 -
php 希尔排序
/*1、间隔为4,每间隔4个人,这些人排成一组2、在每一组的组内进行排序,数组交换,比大小 3、重新设置间隔分组,例如 黄色一组 ,黑色一组 、在进行组内排序交换(用的是插入法)重点、分组的间隔都会越来越小,最后变成1,如果变成1的时候,说明已变成了一组排序用的是插入排序 分组间隔不停的减少,不停的分组,不停做组内的排序最终变为1为止*/希尔排序算法的php实现2php实现希尔排序...原创 2020-08-31 16:54:43 · 167 阅读 · 0 评论 -
数组 为什么很多编程语言中数组都从0开始编号?
数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。原创 2020-12-16 09:28:03 · 207 阅读 · 0 评论 -
链表 头节点描述
$new = new ListNode($val); $cur->next = $new; $cur=$cur->next;数据结构中,在单链表的开始结点之前附设一个类型相同的结点,称之为头结点。头结点的数据域可以不存储任何信息,头结点的指针域存储指向开始结点的指针(即第一个元素结点的存储位置)。 作用1、防止单链表是空的而设的.当链表为空的时候,带头结点的头指针就指向头结点.如果当链表为空的时候,单链表没有带头结点,那么它的头指针就为NULL.2、是为了方便单链表的特.原创 2020-06-15 18:11:02 · 79 阅读 · 0 评论 -
PHP合并数组几种方式总结及数组去重
https://blog.csdn.net/PHPArchitect/article/details/91437669$a = array('1001','1002'); $b = array('1002','1003','1004'); $c = array('1003','1004','1005'); $d = array_keys(array_flip($a) + array_flip($b) + array_flip($c));原创 2020-11-26 10:34:13 · 554 阅读 · 0 评论 -
php 5.3 循环数组时的怪现象
$arr = array(0,1,2,3)foreach($arr as $v){ }var_dump(current($arr)) //最后数组指针停留在数组结尾,取不到值,false循环过程中,拨动了arraycopy的指针,$arr的指针也在拨动,都拨动了最后,最后数组指针停留在数组结尾,取不到值,false$arr = array(0,1,2,3)foreach($arr as $k=>$v){ $arr[$k] = $v; }var_dump(current($ar原创 2020-05-23 12:07:05 · 220 阅读 · 0 评论 -
php5.3 引用数组的怪现象
$arr = array(0,1,2,3);$tmp = $arr;$arr[1] = 11;echo $tmp[1];ht 是指针哈希表 在指向各自的zvalue数组只是一个指针,指向另外的哈希表,哈希表在存者各个的单元的zvalue的结构改了一个值,需要分裂...原创 2020-05-23 12:06:45 · 197 阅读 · 0 评论 -
php5.3 强制分裂
这时候是分享现在是公用结构体 refcount_gc 和 is_ref_gc 都发生了变化引用时,is_ref_gc=1 是说这个结构体与变量是引用关系,改的时候,不分裂,值直接改变,所有指向此结构体的变量,值都变化都对结构体有主权,并不需要分裂 ,两者谁来改,都是改这个值$a = 3$b = $a;$c = &$a;$c = 5;echo $a,$b,$c;$a = 3/*{ value:3 refcount_gc:1 is_ref_gc:0}*/原创 2020-05-23 12:06:30 · 194 阅读 · 0 评论 -
php 5.3 引用赋值发生了什么
$a =3 $b = &$a $b = 5 echo $a , $b //5,5有主权公用这个结构体 ,现在a和a和a和b是公用结构体原创 2020-05-23 12:06:10 · 136 阅读 · 0 评论 -
php5.3 传值赋值发生了什么还有cow写时复制特性
$a = 3;$b = $a;是否产生了2个结构体 ,如果是值一样,类型一样并没有copy结构体出来原创 2020-05-23 12:05:50 · 281 阅读 · 0 评论 -
php5.3 符号表相当于变量花名册
变量名字存哪去了? $a符号表是什么?答:符号表是一张哈希表,里面存储了变量名到变量的zval结构体的地址映射// zend/zend_globals.h 182行#哈希表 变量放到全局的符号表active_symbol_tableHashTable *active_symbol_table; #正在活动符号表 HashTable symbol_table; /* main symbol table */ 全局同时,全局符号表中,多了3条记录 都是指向a --> 0x123原创 2020-05-23 12:05:31 · 402 阅读 · 0 评论 -
php5.3 底层变量的实现
#这就是结构体struct _zval_struct { /* Variable information */ zvalue_value value; /* value */ zend_uint refcount__gc; zend_uchar type; /* active type */ zend_uchar is_ref__gc;};php中的一个变量,就是底层虚拟机用一个结构体来描述的变量的值是结构体描述的有4个字段,理解关联数组zend_uint refcount__gc原创 2020-05-23 12:05:16 · 196 阅读 · 0 评论 -
array_walk array_map array_filter
array_map原创 2020-11-18 10:59:35 · 197 阅读 · 0 评论 -
写一个函数,将一个字符串(如:1234567890),转换成(如1,234,567,890)每3位用逗号隔开的形式
function str($str){ //先反转字符串 $new_str=strrev($str); //在用chunk_split函数将字符串用“ , ” 分割成小块 $new_str= chunk_split($new_str,3,','); //去掉右边的逗号,返回出去 return strrev(rtrim($new_str,','));...原创 2020-03-30 19:53:57 · 781 阅读 · 0 评论 -
PHP 算出两个文件的相对路径?
$a = ‘/a/b/c/d/e.php’;$b = ‘/a/b/12/34/c.php’;function getRelativePath($file1,$file2){ //分别对两个文件路径进行分割 $file1_arr = explode('/', $file1); $file2_arr = explode('/', $file2); //计算fi...原创 2020-03-30 19:51:40 · 342 阅读 · 0 评论 -
PHPsession 和 cookie 的区别、存储机制
cookie在网站中,http请求是无状态的。也就是说即使第一次和服务器连接并且登录成功后,第二次请求服务器的时候服务器仍然不能知道当前是哪个用户的请求。cookie的出现就是为了解决这个问题,第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存到本地,当该用户第二次请求服务器响应的时候,就会自动的把上次请求存储的cookie数据携带给服务器,服务器通过浏览器携带的数据就能判...原创 2020-03-03 16:38:34 · 960 阅读 · 0 评论 -
php7 垃圾回收机制
什么是垃圾回收机制垃圾回收是一种自动的内存管理机制,当一个变量在程序中不在被需要时,应给予以释放,这种内存资源管理称为垃圾回收其中一种垃圾回收的方式是使用引用计数,通过对数据存储的物理空间多附加一个计数器空间,当其他数据与相关时,计数器加一,反之相关解除时计数器减一。...原创 2020-02-27 10:53:21 · 309 阅读 · 0 评论 -
php7 语言执行原理
php 7中,首先进行词法分析,将源代码切割为多个字符串单元,分割后的字符串称为Token。而一个一个独立的Token是无法表达完整语义的,需经过语法分析阶段,将Token转换为抽象语法树(简称AST)。之后,抽象语法树被转换为机器指令执行。在PHP中,这些指令称为opcode第一步: 源码通过词法分析得到Token第二步:基于语法分析器生成抽象语法树(AST)第三步: 抽象语法树转换为op...原创 2020-02-26 22:55:47 · 251 阅读 · 0 评论 -
php 闭包函数 instanceof Closure
PHP 闭包实现主要就是靠匿名函数将匿名函数在普通函数中当做参数传入,也可以被返回,这就是实现了一个简单的闭包通俗的说: 子函数可以使用父函数中的局部变量,这种行为就叫做闭包闭包的两个特点作为一个函数变量的一个引用。当函数返回时,其处于激活状态一个闭包就是当一个函数返回时,一个没有释放资源的栈区其实上面两个点可以合成一个点,就是闭包函数返回时,该函数内部变量处于激活状态,函数所在栈...原创 2020-10-22 18:28:01 · 1856 阅读 · 1 评论 -
new self() 和 new static() 的区别
public static function getInstance() { if (is_null(static::$instance)) { static::$instance = new static; } return static::$instance; }new static 还是 new self() 都是 new 一个对象然后 new self()...原创 2020-01-31 19:17:32 · 289 阅读 · 0 评论 -
自动加载源码解析
PHP自动加载require __DIR__ . '/../thinkphp/start.php';sql_autoload_register#新建的script文件夹<?php#spl_autoload_register 执行这个会找到autoload这个方法spl_autoload_register("autoload",true,true);/** * 自定义类...原创 2020-01-25 22:52:41 · 280 阅读 · 0 评论 -
PHP 去掉相同的数据
$a1=array(123,456,7890,1111); $a2=array(123,456,89); $s=array_merge($a1,$a2); $f=array_intersect($a1,$a2); var_dump($f); $sd=array_diff($s,$f); var_dump($sd);exit;array(7) { [0]=> ...原创 2020-01-11 18:00:27 · 159 阅读 · 0 评论 -
php 取最后一个值
int(1)string(1) "3"array(3) { ["key"]=> string(8) "19314771" ["doc_count"]=> int(2) ["end_battle"]=> array(3) { ["doc_count_error_upper_bound"]=> int(0) ["sum_oth...原创 2020-01-11 14:53:37 · 151 阅读 · 0 评论 -
php 21的有多少人
set_time_limit(0); $file=fopen('xxxx,'r'); $ars=array(); $s = array(); $ji =array(); while (!feof($file)){ ...原创 2019-12-26 16:28:52 · 84 阅读 · 0 评论 -
PHP CURL(2)
function curl_post_https($url,$data){ // 模拟提交数据函数 $curl = curl_init(); // 启动一个CURL会话 curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证...原创 2019-06-13 13:51:47 · 81 阅读 · 0 评论 -
PHP 文件写入和读取
“r”:只能读取文件,不能写入文件(写入操作被忽略)“w”:只能写入文件,不能读取文件(读取操作被忽略)“a”:只追加文件,与“w”类似,区别是“w”删除原有的内容,“a”不删除原有内容,只追加内容首先r+,w+,和a+都是可读可写的,读取时的方式是一样的,关键在于写入方式的不同:r+: 从文件[头部][覆盖]原有内容 ([不删除]原有内容);a+:从文件[尾部][追加]内容 ([不删除...原创 2019-06-19 17:54:12 · 7261 阅读 · 0 评论 -
正则表达式
用法一: 限定开头文档上给出了解释是匹配输入的开始,如果多行标示被设置成了true,同时会匹配后面紧跟的字符。 比如 /^A/会匹配"An e"中的A,但是不会匹配"ab A"中的A用法二:(否)取反当这个字符出现在一个字符集合模式的第一个字符时,他将会有不同的含义。比如: /[^a-z\s]/会匹配"my 3 sisters"中的"3" 这里的”^”的意思是字符类的否定,上面...原创 2019-07-01 18:46:35 · 243 阅读 · 0 评论 -
PHP自带函数给数字前补0或补位
<?php //生成4位数,不足前面补0 $var=sprintf("%04d", 2);echo $var;//结果为0002 echo date('Y_m_d', time()).'_'.sprintf('d', rand(0,99));参考文章 https://blog.csdn.net/weixin_36562804/article/details/8003...转载 2019-07-22 10:58:01 · 584 阅读 · 0 评论 -
PHP 交集 并集 差集
并集:array_merge()交集:array_intersect()差集:array_diff() 过滤:array_filter()去重:array_unique()原创 2019-08-05 11:27:59 · 621 阅读 · 0 评论