php
wuxing164
这个作者很懒,什么都没留下…
展开
-
阿里云OSS图片生成缩略图和获取视频的封面方法
?x-oss-process=image/resize,m_fill,w_200,quality,q_60在图片的地址后面加上以上代码,可以生成缩略图resize调整大小quality清晰度0-100,数字越大,清晰度越高w_200,h_540,图片的宽高大小快速获取视频的封面方法介绍?x-oss-process=video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast t_ 后面配置截取多少毫秒的视频对应的画面 后续的参数和图...原创 2021-11-18 20:39:55 · 6315 阅读 · 0 评论 -
正则表达式校验密码必须是包含大小写字母、数字、特殊符号的8位以上组合
$pattern = "/^(?![A-Za-z0-9]+$)(?![a-z0-9\W]+$)(?![A-Za-z\W]+$)(?![A-Z0-9\W]+$)[a-zA-Z0-9\W]{8,}$/";$pregRs = preg_match($pattern,$value) ;思路:排除法 1、排除大写字母、小写字母、数字、特殊符号中1种组合、2种组合、3种组合,那么就只剩下4种都包含的组合了 2、表达式为:^(?![A-Za-z0-9]+$)(?![a-z0-9\W]+$)(?![A.原创 2021-04-29 17:07:54 · 6727 阅读 · 1 评论 -
Linux 使用 nohup 和 & 的用法
正常执行运行php hello.php,终端会持续输出信息。如果键入Ctrl+C ,程序会收到一个SIGINT信号,默认终止运行。使用 & 执行运行php hello.php &,终端会显示一个进程号,并持续输出信息,如果键入Ctrl+C ,程序会收到一个SIGINT信号,但会继续运行。如果关闭当前会话SESSION,程序会收到一个SIGHUP信号,通过ps aux | grep hello.php看不到该进程,说明程序已经终止运行。使用 nohup 执行运行...原创 2021-01-26 09:10:48 · 123 阅读 · 0 评论 -
解决使用PhpSpreadsheet写入长数字到Excel中时显示为科学计数法
$spreadsheet->getActiveSheet()->getStyle('A1')->getNumberFormat() ->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER);//设置NumberFormat为FORMAT_NUMBER,有其他格式需要可以改成其他格式,如日期:FORMAT_DATE_YYYYMMDD ...原创 2020-12-30 13:34:38 · 906 阅读 · 0 评论 -
PHPexcel导出excel时有些数字会变成科学记数法处理方法
#在变量后面加个空格$money .= ' ';原创 2020-12-29 14:19:13 · 656 阅读 · 0 评论 -
redis锁用法
$stock = $this->getStockFromDb();//查询剩余库存 if ($stock>0){ $this->ReduceStockInDb(); // 在数据库中进行减库存操作 echo "successful"; }else{ echo "库存不足"; }很简单的一个场景,用户下单,咱们查询商品库存够不够,不够的话直接返回库存不足类似的错误信息,如果库存够的话直接在数据库中库存-1,然后返回成功,在业务逻辑上这段代码..原创 2020-12-03 13:51:28 · 1056 阅读 · 1 评论 -
TP5 定时任务
<?phpnamespace app\cron\command ;use think\console\command ;use think\console\Input;use think\console\input\Option;use think\console\Output;/** * Created by PhpStorm. * User: Administrator * Date: 2020-11-26 * Time: 下午 1:53 */class TaskTi.原创 2020-11-26 14:21:25 · 432 阅读 · 0 评论 -
thinkphp5.1 获取系统常量
echo "app_path=========".Env::get('app_path')."</br>";echo "root_path=========".Env::get('root_path')."</br>";echo "think_path=========".Env::get('think_path')."</br>";echo "config_path=========".Env::get('config_path')."</br>";.原创 2020-11-26 13:56:57 · 680 阅读 · 0 评论 -
yii2-queue用法
#安装composer require yiisoft/yii2-queue#加入配置// config/main.phpreturn [ 'bootstrap' => [ 'queue', ], 'components' => [ 'queue' => [ 'class' => \yii\queue\file\Queue::class, ], ],];具体业.原创 2020-11-06 10:26:43 · 1052 阅读 · 0 评论 -
PHP递归无限分类,数组和直接输出
<?PHPfunction eachCategory($cates,$lv=1){ foreach($cates as $v){ echo $v['name']; echo str_repeat(' >> ',$lv); if($v['child']){ $this->eachCategory($v['child'],$lv+1); } }}function catego.原创 2020-10-16 11:57:04 · 197 阅读 · 0 评论 -
FRP内网穿透工具
地址:https://github.com/fatedier/frp/服务端端配置 frps.ini假如服务端的IP地址为:121.35.99.12 token验证可去掉[common]bind_port = 7000 vhost_http_port = 9988 #由于80端口已暂用这里我们使用Nginx做端口映射到80端口来做微信开发的调试,如何映射后文会介绍#连接池max_pool_count = 5#token验证privilege_token = javen#自定义..原创 2020-09-18 20:09:10 · 721 阅读 · 0 评论 -
Xdebug + Postman 调试环境配置
一般phper可能的使用环境会配置成PhpStorm + Xdebug + Postman 调试环境配置。如果已经了解过PhpStorm + Xdebug的配置,会发现比较普遍使用的请求工具可能是Chrome 谷歌游览器,一般会装xdubug helper 插件进行监听请求。不过postman可以利用 cookie 来进行监听请求。开启 postman 的 phpstorm 调试功能大致如下:一般会在配置文件 php.ini 的 xdebug 配置中指定idekey。...转载 2020-09-15 08:58:56 · 570 阅读 · 0 评论 -
原生php curl 推送文件到远程服务器
请注意:php版本要大于等于7以上。发送端:/** * 通过curl传输文件到远程服务器 * @param string $url 推送的远程服务器地址 * @param string $file 要推送的文件的路径 * @return bool|string */function post_files($url, $file){ $data = []; $file = realpath($file); $data = ['file' =>...原创 2020-09-15 08:56:52 · 155 阅读 · 0 评论 -
ThinkPHP5.1 使用 curl 推送文件到远程服务器
请注意:php版本要大于等于7以上。发送端:/** * 通过curl传输文件到远程服务器 * @param string $url 推送的远程服务器地址 * @param string $file 要推送的文件的路径 * @return bool|string */function post_files($url, $file){ $data = []; $file = realpath($file); $data = ['file' =>...原创 2020-09-15 08:55:53 · 717 阅读 · 0 评论 -
PHP 遍历目录下的文件夹和文件以及遍历文件下内容
PHP 遍历目录下的文件夹和文件:/** * 获取文件夹目录下的文件内容 * @param string $dir 文件目录 * @return array */function gain_dir_filename($dir){ $dirStream = []; if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($filename = readdir($dh)) !== .转载 2020-09-15 08:51:01 · 541 阅读 · 0 评论 -
ThinkPHP5.1关于查询条件为[NOT] NULL时的写法
ThinkPHP5.1关于查询条件为[NOT] NULL时的写法$map[] = ['字段名','null',''];//查询为NULL时的条件$map[] = ['字段名','not null',''];//查询不是NULL时的条件封装数组条件:$map = [];$map[] = ['name','like','think'];$map[] = ['status','=',1];...原创 2020-09-14 20:15:52 · 1897 阅读 · 0 评论 -
PhpSpreadsheet导出科学记数转成字符串
$logistic_code."\t" 加上\t即可转成字符串原创 2020-09-10 10:30:40 · 1026 阅读 · 0 评论 -
解锁redis锁
if(Redis::set("my:lock", 1, "nx", "ex", 10)) { ... do something Redis::del("my:lock")}上面的代码把my:lock设置为1,当且仅当这个lock不存在的时候,设置完成之后设置过期时间为10。获取锁的机制是对了,但是删除锁的机制直接使用del是不对的。因为有可能导致误删别人的锁的情况。比如,这个锁我上了10s,但是我处理的时间比10s更长,到了10s,这个锁自动过期了,被别人取走了,并且对它重新.原创 2020-08-25 17:19:21 · 371 阅读 · 0 评论 -
docker 安装swoole
#下载swoole pecl install swoole-4.3.1 #开启扩展docker-php-ext-enable swoole#查看扩展php -m原创 2020-07-07 09:49:09 · 757 阅读 · 0 评论 -
docker 安装php扩展
进入容器 docker-compse exec php-fpm bash安装bcmath扩展 docker-php-ext-install bcmath/usr/local/etc/php/conf.d 查看安装扩展重启PHP容器原创 2020-06-29 13:39:42 · 167 阅读 · 0 评论 -
phpstrom配置xdebug的坑
1.echo phpinfo(),把html源码放到https://xdebug.org/wizard网址中,查找对应的xdebug版本,下载xdebug2.php.ini修改[XDebug]zend_extension="D:\sofe\xampp\php\ext\php_xdebug-2.6.1-7.2-vc15.dll"xdebug.remote_enable=1xdebug.remote_handler=dbgpxdebug.remote_mode=reqxdebug.remote原创 2020-06-15 12:39:00 · 231 阅读 · 0 评论 -
PHP 执行mysql insert插入的数据过长时,使用array_chunk()进行切割
因为访客ip存在几十万条,无法一次性插入到数据库中,于是使用array_chunk()将ip数组切割成无数个小数组,一次执行sql语句。$visitorIp = array();//$start = memory_get_usage();for( $i = 0; $i < 200000; $i++ ) { //200000条ip地址 $visitorIp[] = [ 'ip...原创 2020-03-28 10:23:16 · 557 阅读 · 0 评论 -
严格检查身份证是否正确
function checkNum($num_id) { $num_id = strtoupper($num_id); $regx = "/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-...原创 2019-04-18 08:55:31 · 364 阅读 · 0 评论 -
nginx_https_tp5_wss配置例子
server { listen 443; server_name saas.xxxx.xxx; ssl on; ssl_certificate /usr/local/nginx/cert/mwxy/saas.xxxx.xxx.pem; ssl_certificate_key /usr/local/nginx/cert...原创 2019-04-18 09:14:30 · 370 阅读 · 0 评论 -
防范XSS攻击
不要相信用户的任何输入,并过滤掉输入中的所有特殊字符。这样就能消灭绝大部分的 XSS 攻击使用htmlentities过滤用户输入的数据如:$searchQuery = $_GET['q'];$searchQuery = htmlentities($searchQuery, ENT_QUOTES);...原创 2019-04-24 09:21:49 · 379 阅读 · 0 评论 -
php地址引用
$a=100;$b=&$aecho $a ;echo $b ;输出a:100;b:100 ;unset只是断开绑定unset($a) ;echo $a ;echo $b;输出a: nullb:100$a=10;test($a);echo $a ;输出a:110function test(&$a){ $a=$a+1原创 2015-12-22 16:16:30 · 341 阅读 · 0 评论 -
phpstorm设置变量按等号和数组键值对按
格式化代码 变量按等号=对齐 数组键值对按=>对齐格式化代码选择Reformat Code后,phpStorm会按照设置好的code style,自动格式化代码 设置code style,实现等号对齐路径:Editor/Code Style/PHP/Wrapping and Braces勾选前 勾选后 设置code style,实现数组内键...原创 2018-09-24 15:53:19 · 1520 阅读 · 2 评论 -
php安装Redis扩展
1、安装redis下载:https://github.com/nicolasff/phpredis/archive/2.2.4.tar.gz上传phpredis-2.2.4.tar.gz到/usr/local/src目录cd /usr/local/src #进入软件包存放目录tar zxvf phpredis-2.2.4.tar.gz #解压cd phpredis-2.2.4 ...转载 2018-08-04 15:44:45 · 154 阅读 · 0 评论 -
使用php+curl伪造IP进行url访问
伪造 HTTP_CLIENT_IP和HTTP_X_FORWARDED_FOR参考:https://www.jianshu.com/p/dcc5fa92d0f9https://blog.csdn.net/linglongwunv/article/details/8116359没有负载时使用remote_addr获取真实IP,remote_addr无法伪造,可以通过代理来处理有负载时使用HTTP_X_...原创 2018-07-03 09:34:38 · 5800 阅读 · 0 评论 -
PHP创建的csv文件在windows上乱码的问题
做PHP开发的时候,由于业务需要,可能要经常导出csv文件。使用PHP将数据导出到csv文件不难,使用fputcsv函数就可以了,但导出来的csv文件在windows系统上使用office excel打开时,中文部分会乱码(使用金山的WPS打开不会),这是由于windows系统默认使用GBK编码导致的,所以,在以UTF-8为默认编码的系统上,比如Mac OS上就不会乱码。那么怎么解决这个乱码问题呢...转载 2018-06-19 09:10:32 · 312 阅读 · 0 评论 -
php excel导出大量数据方法
参考:https://segmentfault.com/a/1190000011663425https://segmentfault.com/a/1190000014483949 这个需要安装扩展 set_time_limit(-1); @ini_set('memory_limit','512M'); $columns = ['文章ID', '文章标...原创 2018-06-14 13:57:27 · 5073 阅读 · 1 评论 -
在秒杀,抢购等并发场景下,使用redis防止超卖
$uniqid = uniqid('uid-', TRUE); // 模拟唯一用户ID $redis = new Redis(); $redis->connect('127.0.0.1', 6379); // 连接 redis $redis->watch('rest_count'); // 监测 rest_count 是否被其它的进程更改 ...原创 2019-06-13 09:14:38 · 1101 阅读 · 0 评论 -
php的instanceof和判断闭包Closure
instanceof 用于确定一个 PHP 变量是否属于某一类 class 的实例<?phpclass MyClass{}class NotMyClass{}$a = new MyClass;var_dump($a instanceof MyClass);var_dump($a instanceof NotMyClass);?>bool(true)...原创 2019-06-18 09:24:32 · 1557 阅读 · 0 评论 -
PHP7微信小程序获取openid和用户信息
public function actionGetToken(){ $request_body = file_get_contents('php://input'); $data = json_decode($request_body, true); $code = $data['code'] ; $encryptedData =...原创 2019-08-06 23:07:49 · 249 阅读 · 0 评论 -
SKU相关
https://blog.csdn.net/fengchengwu2012/article/details/83790995https://bbs.youzan.com/forum.php?mod=viewthread&tid=241261https://www.cnblogs.com/leefreeman/p/4060227.htmlhttps://blog.csdn.net...转载 2019-07-24 10:46:50 · 130 阅读 · 0 评论 -
AES加密相关
AES加密位数跟密钥key的位数有关, 以下是密钥位数和加密对应关系 16 => AES-128 24 => AES-192 32 => AES-256 iv是初始化向量. 超过16字节或者不足16字节都会被补足16字节或者截断到16字节。由于AES是块加密,铭文被分割成固定长度的块(一般是16字节长度),所以iv也是16字节。 CBC是加密模式具体可参...转载 2019-07-12 08:47:17 · 448 阅读 · 0 评论 -
gmstrftime将数字转成时分秒的形式
$str = 301;gmstrftime("%H:%M:%S",$str) ; //00:05:01将数字,转成时分秒的形式$result = $str ?? [] // 三元表达式,$str如果为空值为[].不为空则为$str有序集合可以做排行榜用zincrby($key,1,$id); //对每个ID每次请求进行加1zrevrange $key 0 -1 wit...原创 2019-07-07 14:57:23 · 548 阅读 · 0 评论 -
redis-分布式锁
$ok = $redis->set($key, $random, array('nx', 'ex' => $ttl));if ($ok) { //获取到锁 ... do something ... if ($redis->get($key) == $random) { $redis->del($key); }}Re...原创 2019-07-06 08:56:08 · 164 阅读 · 0 评论 -
PHP反射例子
$className = "\backend\models\ContentType" ; $param = [] ;// $aa = new ContentType() ;// $bb = $aa->attributeLabels() ;// var_dump($bb);exit; $aa = ...原创 2019-07-04 21:27:30 · 117 阅读 · 0 评论 -
redis排行榜之日排行周排行设计
ZINCRBY rank:20150401 5 1ZINCRBY rank:20150401 1 2ZINCRBY rank:20150401 10 3ZRANGE rank:20150401 0 -1 withscores1)"2"2)"1"3)"1"4)"5"5)"3"6)"10"按照分数从高到低,获取 top10ZREVRANGE rank:20150401 ...原创 2019-07-09 09:42:09 · 669 阅读 · 0 评论