php
奇葩也是花
码农也是码
Ps:有问题可以私聊我
展开
-
PHP-Curl提示Protocol “https“ not supported or disabled in libcurl
问题产生本地开发环境使用的是 MxSrvs ,Mac下还算好用的一个集成环境,官网: http://www.xsrvs.com/docs.html今天在使用的时候,使用CURL调用https接口的时候提示,Protocol “https” not supported or disabled in libcurl解决问题思路1、提示信息为 协议不支持或者被禁用,第一反应是看下自己的CURL是否开启,打印phpinfo之后,发现CURL扩展是开启的。2、发现CURL开启,没法请求https接口可能是原创 2020-11-18 18:20:08 · 8385 阅读 · 11 评论 -
php-yield生成器
//对某一数组进行加权处理$numbers = array('nike' => 200, 'jordan' => 500, 'adiads' => 800);//通常方法,如果是百万级别的访问量,这种方法会占用极大内存function rand_weight($numbers){ $total = 0; foreach ($numbers as $number => $weight) { $total += $weight; .原创 2020-10-12 23:53:04 · 344 阅读 · 1 评论 -
阿里云-直播-生成推流地址
<?php#鉴权 URL 由直播推流地址或播放地址 + 验证串组成。验证串是根据鉴权 key + 失效时间通过 md5 算法计算出,该地址适用于 PC 端、移动端、第三方推流和播放工具。#鉴权 KEY 字段随机分配,也支持用户自定义。 # 有效时间 指用户访问客户源服务器时间超过自定义的时间(timestamp 字段指定)后,该鉴权失效。例如,有效时间为 1800s,用户设置访问时间:2020-08-15 15:00:00,链接真正失效时间是:2020-08-15 15:30:00。原创 2020-09-17 22:31:35 · 1524 阅读 · 0 评论 -
Laravel 框架使用 PhpSpreadsheet处理Excel
PHPOffice是一个用来处理办公相关软件的php类库PhpSpreadsheet专门处理excle的类库引入类库composer require phpoffice/phpspreadsheet创建路由Route::get('/excel','test\TestController@excelReader');Route::get('/excel2','test\TestController@excelWriter');读取excelpublic functi..原创 2020-08-08 15:15:40 · 2253 阅读 · 0 评论 -
Es操作类
<?phpinclude_once __DIR__ . '/Curl.class.php';/** * Es的操作类 * Class Es */class Es{ /** * Es查询的的索引 * @var string */ private $es_index = ''; /** * 要查询的字段 * @var string */ private $_fields = ''; /*原创 2020-08-05 10:12:52 · 215 阅读 · 0 评论 -
php-调用阿里云第三方短信接口
去云市场找一个短信接口https://market.aliyun.com/products/56928004/cmapi023305.html?spm=5176.2020520132.101.7.791372187l0Zqa购买短信包找到自己的appcode,进入 管理控制台找到自己的appcode调用接口即可<?php $host = "http://dingxin.market.alicloudapi.com"; $path = "/dx/send..原创 2020-06-05 10:16:17 · 1015 阅读 · 0 评论 -
php-根据身高排序,在根据重量排序
$one = [ 'one' => [ 'height' => 175 , 'weight' => 50 ]];$two = [ 'two' => [ 'height' => 172 , 'weight' => 60 ]];$three = [ 'three' => [ 'height' => 172, 'wei.原创 2020-06-02 20:54:34 · 480 阅读 · 0 评论 -
php-gd2 生成图片-限制每行字数
$str = 'aa212asda萨达aa212asda萨达aa212asda达';$len = mb_strlen( $str );$arr = [];$sum = 0 ;$max_width = 100;$number_px = 5;$English_px = 5;$chinese_px = 10;$all = '';for( $i = 0 ; $i < $len ; $i ++ ){ $char = mb_substr( $str ,$i , 1 ); if(原创 2020-06-02 20:52:33 · 262 阅读 · 0 评论 -
TP5重写规则-区分前台台-admin.php和index.php
server { listen 80; server_name shop.phpclub.top; access_log /data/wwwlogs/access_nginx.log combined; root /data/wwwroot/default/1805/tp5/public; autoindex on; index index.html index.htm index.php; #error_page 404 /404.html;原创 2020-05-28 17:35:13 · 789 阅读 · 0 评论 -
js插件cropper解决接口开发访问图片出现跨域问题
问题:在使用jQuery jscroper组件的时候,会自动把其他域名下的图片请求转换成跨域的请求,如果想要设置允许访问,可以设置图片运行通过其他域名访问 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ { add_header Access-Control-Allow-Origin 'http://h5.phpclub.top'; expires 30d; access_log off; }原创 2020-05-19 22:59:14 · 1638 阅读 · 0 评论 -
API接口防刷
接口防刷通过Redis进行限制。实现思路:1、用户在访问接口的时候,获取用户的ip $request -> ip();2、把ip作为key,访问次数作为对应的值,每次访问接口累加访问次数即可。 【注意一个问题:key的有效期是1分钟,必须是第一次写入的时候 指定1分钟的有效期】3、下一次访问的时候,判断是否超过100次,如果超过的,吧ip加入黑名单中半个小时。 【用的数据...原创 2020-05-06 15:39:03 · 1888 阅读 · 0 评论 -
接口鉴权+接口签名
接口鉴权的实现【 微信公众号中,不同类型的公众号有不同的权限。 】如何实现:借助了appid和appsecret。接口如何实现鉴权?1、给每个客户端下发一个appid和appsecret2、接口端给每个客户端设置不同的权限3、客户端请求接口的时候,接口端根据客户端传递的appid,找到客户端对应的权限4、判断用户是否具备调用该接口的权限。为什么要做接口签名?防止数据被篡改...原创 2020-05-06 15:37:30 · 2320 阅读 · 0 评论 -
缓存预热脚本
<?php# 缓存预热 : 在内存缓存雪崩之后,如果没有做持久化的话,# 会导致内存的所有数据丢失,导致MYSQL服务器压力过大,导致宕机,为了解决这个问题,需要准备一个# 预热脚本header( 'content-type:text/html;charset=utf-8' );$mysql_obj = new mysqli( '127.0.0.1', 'roo...原创 2018-06-12 09:03:31 · 532 阅读 · 1 评论 -
设计模式之一策略模式
设计模式从今天开始开启设计模式专栏,我会系统的分析和总结每一个设计模式以及应用场景。那么首先,什么是设计模式呢,作为一个软件开发人员,程序人人都会写,但是写出一款逻辑清晰,扩展性强,可维护的程序就不是那么容易做到了。现实世界的问题复杂多样,如何将显示问题映射到我们编写的程序中本就是困难重重。另一方面,软件开发中一个不变的真理就是“一切都在变化之中”,这种变化可能来自于程序本身的复杂度,也可能来自于...转载 2018-07-02 09:20:44 · 419 阅读 · 0 评论 -
Mysql几种日志简介
Mysql的日志包括如下几种日志:错误日志普通查询日志二进制日志慢查询日志Mysql版本此文档测试mysql的版本为[root@mysql-dev01 bin]# ./mysql -V./mysql Ver 14.14 Distrib 5.7.14, for Linux (x86_64) using EditLine wrapper12错误日志 error logMysql错误日志主要记录M...转载 2018-06-21 22:14:37 · 464 阅读 · 0 评论 -
MySql 外键约束 FOREIGN KEY REFERENCES 之 空、RESTRICT、NO ACTION、CASCADE、SET NULL 等类型分析和作用解读
主表,从表【MySql】空、RESTRICT、NO ACTION删除:从表记录不存在时,主表才可以删除。删除从表,主表不变更新:从表记录不存在时,主表才可以更新。更新从表,主表不变CASCADE删除:删除主表时自动删除从表。删除从表,主表不变更新:更新主表时自动更新从表。更新从表,主表不变SET NULL删除:删除主表时自动更新从表值为NULL。删除从表,主表不变更新:更新主表时自动更新从表值为N...转载 2018-06-21 22:12:14 · 442 阅读 · 0 评论 -
MySql的二进制日志,重做日志笔记,UndoLog
简单总结一下二进制日志和重做日志的区别二进制日志(bin log):是mysql数据库级别的文件,不会记录select和show语句,主要用于恢复数据库和集群,配置参数为sync_binlog=N(表示每写缓冲多少次就同步一次磁盘),1表示同步方式写磁盘(写一次缓存即同步一次磁盘),默认为0,事务提交时会写磁盘(仅在事务提交前写磁盘)。有STATEMENT ROW MIXED三种格式。重做日志(r...转载 2018-06-21 22:09:53 · 161 阅读 · 0 评论 -
[转]MySQL日志——Undo | Redo
本文是介绍MySQL数据库InnoDB存储引擎重做日志漫游00 – Undo LogUndo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC)。- 事务的原子性(Atomicity) 事务中的所有操作,要么全部完成,要么不做任何操作,不能只做部分操作。如果在执行的过程中发生 了错误,要回滚(Rollback)到...转载 2018-06-21 22:00:46 · 386 阅读 · 0 评论 -
常见算法
# 取出数组最大的元素function getMax( $arr ){ if( !is_array($arr) ){ exit('参数必须是数组'); } if( count( $arr ) == 0 ){ exit('数组不能为空'); } if( count( $arr ) == 1 ){ return array_shift( $arr ); ...原创 2018-05-31 11:45:04 · 194 阅读 · 0 评论 -
工厂模式
<?php# https://blog.csdn.net/u010412301/article/details/54925217############################################简单工厂模式#################################################### 也叫静态工厂模式interface IDb{ ...原创 2018-10-11 18:47:36 · 332 阅读 · 0 评论 -
订单号生成--相关
以下故事仅供参考:#############################################################################################你是个程序员。隔壁老王通过你老婆找到你,说要做个"巨牛逼电商网站",并许诺给你股份若干,你想想首付也攒了好久,就差200万就够了,于是就同意了,你花了一个星期做了一个网站并上线运营,订单...转载 2018-10-19 18:31:25 · 1407 阅读 · 3 评论 -
接口---redis防刷
/** * 防止接口恶意调用 */ public function checkRequest(){ # 一分钟调用接口不能超过10次 $limit = 10; $time = 10; $this -> redis -> select(12); $ip = request(...原创 2018-10-25 17:40:31 · 1226 阅读 · 0 评论 -
微信小程序支付-小程序代码+php
小程序获取用户的openid,在app.js保存下openid//app.jsApp({ onLaunch: function () { // 展示本地存储能力 var logs = wx.getStorageSync('logs') || [] logs.unshift(Date.now()) wx.setStorageSync('logs', log...原创 2019-03-15 20:32:00 · 483 阅读 · 0 评论 -
微信扫码支付,公众号支付
<?php# 微信统一下单接口$url = 'https://api.mch.weixin.qq.com/pay/unifiedorder';$param = [ 'appid' => '公众号id', 'mch_id' => '商户id', 'nonce_str' =>uniqid(), 'sign_type' =>...原创 2019-03-15 20:34:47 · 1148 阅读 · 1 评论 -
LDAP安裝
LDAP简介: LDAP(Lightweight Directory Access Protocol)的意思是"轻量级目录访问协议",是一个用于访问"目录服务器"(Directory Servers)的协议。这里所谓的"目录"是指一种按照树状结构存储信息的数据库。这个概念和硬盘上的目录结构类似,不过LDAP的"根目录"必须是"The world",并且其一级子目录必须是"countries"...原创 2019-03-25 22:08:51 · 237 阅读 · 0 评论 -
PHP + SWOOLE 实现弹幕功能
HTML + JS: 【网上找到弹幕代码】<meta charset="utf-8"/><div class="container"> <div id="content" class="content"> <img src="./1.png"/> </div> <div class="...原创 2019-08-26 15:37:52 · 940 阅读 · 2 评论 -
Laravel的生命周期
1、首先加载index.php入口文件2、通过composer加载 bootstrap/app.php获取laravel实例3、创建一个服务容器4、加载http内核 kernel.php5、内核定义所有请求都经过http中间件,6、内核生成request和response,request把请求交给路由7、路由分发给控制器和方法,同时运行指定的中间件...原创 2019-09-27 09:08:36 · 224 阅读 · 0 评论 -
系统架构设计中,如果做好“限流”?(转)
什么是服务限流让我们先看一看系统架构设计中,为什么要做“限流”。旅游景点通常都会有最大的接待量,不可能无限制的放游客进入,比如故宫每天只卖八万张票,超过八万的游客,无法买票进入,因为如果超过八万人,景点的工作人员可能就忙不过来,过于拥挤的景点也会影响游客的体验和心情,并且还会有安全隐患;只卖N张票,这就是一种限流的手段。软件架构中的服务限流也是类似,也是当系统资源不够的时候,已经不足以应对大...转载 2019-10-09 20:58:57 · 231 阅读 · 0 评论 -
PHP的垃圾回收机制详解
官网关于垃圾回收:http://php.net/manual/zh/features.gc.refcounting-basics.php最近由于使用php编写了一个脚本,模拟实现了一个守护进程,因此需要深入理解php中的垃圾回收机制。本文参考了PHP手册。在理解PHP垃圾回收机制(GC)之前,先了解一下变量的存储。php中变量存在于一个zval的变量容器中。转载 2018-01-15 13:28:12 · 208 阅读 · 0 评论 -
分页缓存 + 搜索条件 + 缓存版本号
<?php# 分页缓存 + 搜索条件 + 缓存版本号header( 'content-type:text/html;charset=utf-8' );$mysql_obj = new mysqli( '127.0.0.1', 'root', '', 'yii_shop');$redis_obj = new Redis();$redis_obj...原创 2018-06-12 09:01:22 · 855 阅读 · 0 评论 -
WAMP 添加php新版本
1.1. 停止WAMP服务器.2.下载要安装的PHP版本。下载Window版本的ZIP包啦:http://windows.php.net。解压到 Wamp的安装目录\bin\php\php7.1.0。 --- 注意自己是vc11还是vc14 vc 93.从已存在的php版本文件中(如php7.0.4 (eg. wamp/bin/php/php7.0.4)复制以下文件: - php.ini、...转载 2018-04-23 20:23:49 · 1396 阅读 · 0 评论 -
PHP程序报错处理---记录日志,发邮件
<?php# 防止文件直接被访问/*if( !defined( 'ERROR_MAIL' ) ){ header("HTTP/1.0 404 Not Found"); exit;}*/var_dump(ERROR_MAIL);exit;//错误邮件if( ERROR_MAIL ){ headers_sent() ? '' : header('content原创 2018-01-17 10:23:33 · 919 阅读 · 0 评论 -
API返回参数统一格式化
<?phpnamespace V3\Format;/** * 格式化AccountController * Class FormatAccount * @auth LiKang * @date 2015-12-08 */class FormatAccount extends Format{ /** * 格式化login */ public fu原创 2018-01-17 10:34:20 · 1791 阅读 · 0 评论 -
API版本升级接口
/** * 版本检测接口 */ public function checkUpdate(){ //终端版本号 if( empty( $this -> _data['tt'] ) ){ $this -> failure( Param::TERMINAL_TYPE_IS_NULL , Param::TERMINAL_原创 2018-01-17 10:33:04 · 2669 阅读 · 0 评论 -
API服务端实现图片验证码
<?phpnamespace V3\Controller;use Think\Controller;use V3\Param\Param;use V3\Status\Status;use V3\Status\Success;/** * 公共接口 * Class PublicController * @package Home\Controller * @date 2015-11原创 2018-01-17 10:32:14 · 2917 阅读 · 0 评论 -
自定义的C方法(仿照TP框架C方法),支持无限级调用
核心方法/** * 获取配置、设置配置 * C('A.A') * @param string $conf_key * @param string $value * @return array|string */function C( $conf_key ='' , $conf_value = '' ){ static $conf; // 初始化原创 2018-01-17 10:29:54 · 1457 阅读 · 0 评论 -
关于接口的统一验证
核心基类调用统一验证:<?phpnamespace App\Controller;use FrameWork\Lib\Controller;use FrameWork\Extend\DES;/** * 控制器到父类做一些公共到业务处理 * Class CommonController * @package App\Controller */class CommonContro原创 2018-01-17 10:20:46 · 615 阅读 · 0 评论 -
关于接口安全
<?phpheader('content-type:text/html;charset=utf-8');class DES{ /** * DES加密 (需要打开php.ini的extension=php_mcrypt.dll) * @param string $input * @param string $key * @return str原创 2017-08-22 15:18:23 · 617 阅读 · 0 评论 -
php运行原理
PHP用起来感觉很简单方便,但是要精通PHP,熟悉底层的工作原理也不是一件容易的事。1 PHP的设计理念及特点多进程模型:由于PHP是多进程模型,不同请求间互不干涉,这样保证了一个请求挂掉不会对全盘服务造成影响,当然,时代发展,PHP也早已支持多线程模型。弱类型语言:和C/C++、Java、C#等语言不同,PHP是一门弱类型语言。一个变量的类型并不是一开始就确定不变,运行中才会转载 2017-11-03 09:57:55 · 296 阅读 · 0 评论 -
Linux搭建迅搜( Xunsearch )
运行下面指令下载解压安装包wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2tar -xjf xunsearch-full-latest.tar.bz2执行安装脚本,根据提示进行操作,主要是输入 xunsearch 软件包的安装目录,强烈建议单独规划一个目录,而不是混到别的软件目录中。cd x原创 2017-10-08 16:07:39 · 1426 阅读 · 0 评论