php学习
myeye520
思想不及格,其它全部是垃圾
展开
-
php简洁版雪花算法Snowflake
原理介绍:Snowflake的核心思想是将64bit的二进制数字分成若干部分,每一部分都存储有特定含义的数据,比如说时间戳、机房ID、机器ID、序列号等等,最终生成全局唯一的有序ID。它的标准算法是这样的:0 0000000000000000000000000000000000000000 0000000000 000000000000符号位 41位时间戳,大约够69年 10位(机房+机器ID) 12位序列号 具体位数怎么分配原创 2021-12-30 18:29:06 · 2730 阅读 · 1 评论 -
rsa2加解密及签名校验
非对称加解密:第一种用法:私钥签名,公钥验签。---用于签名第二种用法:公钥加密,私钥解密。---用于加解密class Rsa2Controller extends Controller{ /**** * 第一种应用:验签(私钥加密,公钥验签) * @return string */ public function verifySign() { $rsa2 = new Rsa2(); $data = [原创 2021-07-06 10:18:28 · 2594 阅读 · 0 评论 -
Tcpdf操作html转pdf带页眉和页脚
一:安装Tcpdf依赖composer install tecnickcom/tcpdf二:编写htmlToPdf方法/****** * html生成pdf文件 * tag: 合约生成 * $params['author'] 作者 * $params['title'] 标题 * $params['subject'] 主题 * $params['keywords'] 关键词 * $params['signDate']原创 2020-08-19 14:33:42 · 1395 阅读 · 0 评论 -
composer 简单使用
1,局部安装在网站根目录 放入 composer.phar 执行文件,以及composer.json文件(内容依赖包名称和版本)例:"require": { "php": ">=5.4.0", "topthink/framework": "~5.0.0", "jpush/jpush": "^3.5"},ps:在require依赖前,先确定已经install过依赖,只需要install一次后,就不需要再install依赖了命令:php composer.p原创 2020-05-09 17:23:21 · 260 阅读 · 0 评论 -
跨域session不一致问题解决方案
原理:代码允许携带cookie操作: A.后端代码加header header("Access-Control-Allow-Origin:www.aaa.com"); //允许跨域地址(*,域名,ip)header('Access-Control-Allow-Credentials:true'); //允许客户端携带cookie,注意在此处为true时,上面一行...原创 2020-02-11 15:28:28 · 794 阅读 · 0 评论 -
PHP跨域问题解决方案
首先,我们要明白什么是跨域:跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。浏览器的同源策略:同源是指,域名,协议,端口均相同,有任一不相同皆将造成跨域明白了这些,我们来说说解决跨域问题的两种方案1,header设置允许跨域(推荐) 后端代码设置: // 指定允许其他域名访问header('Acce...原创 2020-02-11 15:11:02 · 4799 阅读 · 0 评论 -
获取无限极菜单列表
数据表基本必须字段:id,name,pid,path/*** 获取菜单栏目列表* @param int $pid 父级id* @return array*/public function getMenuCategory($pid = 0){ $temp_arr = []; //初始化数组 $firstRes = $this->where(['pi...原创 2020-01-18 18:43:28 · 518 阅读 · 0 评论 -
php合并数组
数组$a = array('c'=>'df',2=>'4r',1=>'dd','b'=>'ok');$b = array(2=>'ff','b'=>'ko','a'=>'gfg',9=>'87');1,$c=array_merge($a,$b);如果是字符串键名相同,后面的覆盖前面的,比如$c中"b"=>"ko";如果是...原创 2020-01-15 11:01:13 · 132 阅读 · 0 评论 -
php小常识
1,所有的魔术方法必须设置为public2,__get()和__set()在设置和获取已有的私有属性的时候自动调用,同样在设置和获取不存在属性的时候也自动调用;3,对象拷贝用 = 的时候,只是复制了指针,内存空间的数据还是同样的,基本和&引用的作用差不多,只有加上clone ,才是勉强的深复制,这时候才是复制成了两份数据4,mkdir创建目录时如果需要创建多层...原创 2020-01-14 11:45:17 · 134 阅读 · 0 评论 -
php文件流下载和预览文件
下载文件: //读取文件 $fileSize = file_put_contents($fileDir.$fileName,$remoteFile); if(!$fileSize){ echo 'HTTP/1.1 404 NOT FOUND';exit; //Header('HTTP/1.1 404...原创 2020-01-13 10:38:17 · 1258 阅读 · 0 评论 -
php+grpc+protobuf整合(php客户端+go服务端)
PHP客户端环境本人使用为debian系统下的docker容器安装的php-fpm镜像,php-fpm7.1.13镜像承载系统为alpine;需要安装工具protoc: 将proto文件生成为php文件的编译器grpc_php_plugin: protoc生成关于grpc的php文件的插件grpc.so: php的grpc扩展protobuf.so: php的protobu...原创 2020-01-10 14:25:57 · 3410 阅读 · 1 评论 -
php关于逻辑运算和逻辑短路
1,在逻辑运算里,整形0,浮点型0.0,字符串型 “”,“0”,数组型array(),都属于falseps:字符串类型“0.0” 不属于false,属于true;例:$a = 0;$b = 1;if($a&&$b){ echo "111";}结果:没有输出2,直接输出boolean型值(false,true);echo fal...原创 2020-01-06 10:20:41 · 290 阅读 · 0 评论 -
php取整函数和随机数函数
A. ceil 是向上进位得到一个值的函数;B. floor 是舍掉小数位得到一个值的函数;C. round 是用来四舍五入的函数A. ceil() 函数向上舍入为最接近的整数。说明:返回不小于 x 的下一个整数,x 如果有小数部分则进一位。ceil() 返回的类型仍然是 float。B. floor() 函数向下舍入为最接近的整数。说明:返回不大于...原创 2019-12-31 10:42:39 · 444 阅读 · 1 评论 -
冒泡排序的两种方式
冒泡排序有两种思想:一:元素1和元素2比较后换位,元素2和元素3比较后换位,元素3和元素4比较后换位。。。。。$arr = array(3,2,18,6,7,10,81,22,25,73);for($i=1;$i<count($arr)-1;$i++){ for($j=count($arr)-1;$j>=$i;$j--){ if($arr[$j...原创 2019-12-31 10:32:58 · 348 阅读 · 0 评论 -
用PHP实现POP3邮件的收取
POP协议简介本文简要说明了通过POP3协议收取邮件、MIME邮件的解码的原理;针对收取和MIME解码,提供了两个实用的PHP类,并提供了使用的样例。分为邮件收取、MIME解码两个部分。这里我们先向您介绍邮件的收取,解码部分会在以后的文章中为各位详细的介绍,敬请关注。现在Internet上最大的应用应该是非Email莫属了,我们每天都习惯于每天通过Email进行交流,各大网站也几乎都推出了...转载 2019-12-26 10:07:16 · 1713 阅读 · 0 评论 -
php上传类分享,使用简单
最近写了一个文件上传类,支持单个上传,多个上传,限制上传类型,限制上传大小,是否改变上传文件名,自定义上传目录功能; 新建类文件FileUpload.class.php,话不多说,上代码,<?phpclass FileUpload{ private $allowType = array(); //允许上传类型 private $maxSize;原创 2017-03-28 20:22:32 · 352 阅读 · 0 评论