
PHP
皖南大花猪
一杯茶,一包烟,一行代码敲一天
展开
-
laravel如何使用scout+elasticsearch搜索,并支持IK分词
laravel使用es实现全文搜索 laravel-scout-elastic,本扩展包支持IK分词设置。原创 2023-05-26 17:02:38 · 1243 阅读 · 0 评论 -
php 使用nacos部署配置中心,无侵入式部署
1、根据nacos文档描述部署nacos服务端https://nacos.io/zh-cn/docs/quick-start-docker.html注:可以根据自己需求修改对应文件2、用go写个脚本拉取nacos配置并保存到指定位置原创 2022-04-29 17:57:43 · 4048 阅读 · 0 评论 -
hyperf 获取当前路由请求的控制器和方法名
use Hyperf\HttpServer\Router\Dispatched;$controllerMethod = explode('@',$this->request->getAttribute(Dispatched::class)->handler->callback);var_dump($controllerMethod) // array(2) {// [0]=>// string(43) "\App\Controller\IndexControl原创 2021-10-15 10:15:38 · 1740 阅读 · 0 评论 -
php 字符串脱敏处理
/** * @static dataDesensitization. * 字符串脱敏处理 * * @param string $string 需要处理的字符串 * @param int|string $start 脱敏开始字符串或者开始位置 * @param int|string $length 脱敏长度 * @param string $re 长度一位的情况则根据脱敏长度去替换,长度大于一位则不论脱敏长度多少都原创 2021-09-14 10:38:26 · 749 阅读 · 0 评论 -
mac下brew install php后用pecl安装swoole报错找不到`pcre2.h`
mac下brew install php后用pecl安装swoole报错找不到pcre2.hIn file included from /private/tmp/pear/temp/swoole/ext-src/php_swoole.cc:21:/usr/local/Cellar/php/8.0.0_1/include/php/ext/pcre/php_pcre.h:23:10: fatal error: 'pcre2.h' file not found#include "pcre2.h"原创 2021-09-09 14:43:41 · 1751 阅读 · 0 评论 -
根据经纬度,距离,角度计算另外一个点
/** * @static getLonLat. * * @param $lon * @param $lat * @param $distance * @param $angle * * @return string */ public static function getLonLat1($lon, $lat, $distance, $angle) { $ea = 6378137;.原创 2020-10-29 18:11:45 · 1949 阅读 · 1 评论 -
laravel小技巧之 optional 函数
optional() 函数在对象为null时调用方法返回null,容错性高,不会直接报错原创 2020-06-12 18:49:45 · 585 阅读 · 0 评论 -
使用PHP写shell脚本基础输入输出说明
#!/usr/bin/env php<?php // $argc 表示参数个数,$argv 参数内容 // echo '接收到'.$argc.'个参数'; // print_r($argv); // 这个函数也可以接收参数 $option = getopt('v'); if(isset($option['v'])){ fwrite(STDOUT, "demo版本:v0.0.1\n"); } // STDIN 是输入 echo '请确认是否继续(Y/N):'; $原创 2020-06-09 10:33:24 · 600 阅读 · 0 评论 -
PHP使用3DES进行加解密,加密模式为ECB
PHP中3DES加解密,加密模式为ECB,加密方法看下面代码/** * Encrypt * @param $data * @return string * @DateTime 2019-02-22 10:28 */public function encrypt($data, $key){ $encData = openssl_encrypt($data, 'DES-EDE...原创 2019-02-28 16:27:46 · 3689 阅读 · 4 评论 -
php declare 的语法详解
declare ¶(PHP 4, PHP 5, PHP 7)declare构造用于为代码块设置执行指令。 declare的语法类似于其他流控制结构的语法:declare (directive) statementdirective 部分允许设定 declare 代码段的行为。目前只认识三个指令:ticks(更多信息见 ticks 指令), encoding(更多信息见 enco...原创 2019-03-07 18:38:52 · 3235 阅读 · 0 评论 -
php 引用传递和值传递深入解析
PHP 值传递和引用传递的区别。什么时候传值什么时候传引用先来张图,然后再讲后面的按值传递函数范围内对值的任何改变在函数外部都会被忽略值传递是把值拷贝一份,两个变量指向两个内存地址值传递没什么好说的,就是普通的赋值,如下:$a = 6;$b = $a; // 这是值传递,把 $a 的值拷贝给了 $b,在内存中 $a 和 $b 不在一个地址中,更改任意变量的值对对方无影响$b ...原创 2019-03-30 17:10:28 · 3772 阅读 · 1 评论 -
PHP 中openssl_pkey_get_private函数获取私钥返回 FALSE 的问题
openssl_pkey_get_private ( mixed $key [, string $passphrase = “” ] ) : resource参数keykey 可以是如下密钥之一:如下格式的字符串 file://path/to/file.pem。该文件必须包含 PEM 编码的证书或者私钥 (可能都包含了).一个 PEM 格式的私钥。passphrase如果指定的密钥已...原创 2019-04-08 20:58:50 · 12035 阅读 · 0 评论 -
PHPDoc 规范
转载自 PHP 注释的艺术 —— phpDoc 规范PHPDOCPHPDoc 是一个 PHP 版的 Javadoc。它是一种注释 PHP 代码的正式标准。它支持通过类似 phpDocumentor 这样的外部文档生成器生成 API 文档,也可以帮助一些例如 Zend Studio, NetBeans, ActiveState Komodo Edit and IDE 和 Aptana Stu...转载 2019-04-22 10:12:41 · 6300 阅读 · 0 评论 -
PHP 异常错误处理
目录 错误与异常 异常类 错误类(PHP >= 7) 错误 错误报告级别 错误报告设置 全局异常处理程序 全局错误处理函数 无法捕获的错误类型 范例代码 ...转载 2019-04-26 17:31:16 · 1267 阅读 · 0 评论 -
支付宝接口调用 - Alipay SDK for PHP
简介WannanBibPig\Alipay原创 2019-06-09 22:36:22 · 4783 阅读 · 5 评论 -
Symfony / EventDispatcher组件使用
介绍长久以来,面向对象程序确保了代码的灵活性。通过创建组织良好而分工明确的类,你的代码变得更加灵活,而其他开发者可以用子类扩展它们并修改基类的行为。但如果有人想要与其他已经有自己子类的开发者“共享这种改变”,那么代码继承便不再适用。思考一个现实中的例子,你要在你的项目中提供一个插件系统。A插件要能添加方法,或者在别的方法被执行之前“做一些事”,而不去干涉其他插件。这并非单体继承所能解决的简单...原创 2019-06-28 11:55:03 · 2949 阅读 · 0 评论 -
Guzzle 返回值取值解析
Guzzle实现了PSR-7。 这意味着它将默认将消息正文存储在使用PHP临时流的Stream中。 要检索所有数据,可以使用类型转换操作符。示例:$client = new Client($this->getOptions());$response = $client->request($method, $url, $options);我们可以有两种取值方式如下:$...原创 2019-07-20 13:50:34 · 4379 阅读 · 0 评论 -
PHP 生成 XML 空元素简写的问题
当你生成一个XML的时候,如何在节点内容为空时显示两个标记???原创 2019-01-16 17:49:02 · 874 阅读 · 0 评论 -
【PHP】CURL函数(支持get,post,xml,文件上传)
CURL函数curl 模拟表单提交,此处记录下,方便以后拿来即用1、支持get,post,xml,文件上传等…/** * curl * @param $url * @param null $data * @param null $BOUNDARY * @return mixed * @throws \Exception * @author liuml &lt;l...原创 2019-01-25 14:15:22 · 1128 阅读 · 0 评论 -
微信小微商户图片上传接口
先贴上图片上传文档地址 https://pay.weixin.qq.com/wiki/doc/api/download/img_upload.pdf 图片上传接口返回的media_id在申请入驻接口时有用,所以一开始就得把这个调通,才能继续往下走申请入驻接口。 下面直接上代码看着清楚点&lt;?php /** * uploadMedia.php *...原创 2018-08-26 22:24:13 · 5588 阅读 · 0 评论 -
微信小微商户申请入驻接口PHP示例
证书接口文档地址 【查看】 该接口请求需要双向证书。 【详见证书使用】 在curl请求这里和图片上传接口一样都需要上传证书的,详见我的上一篇博客 微信小微商户图片上传接口 下面给出的代码 publicKeyEncrypt 方法中的 $publickey 就是证书下载接口返回的 encrypt_certificat e.ciphertext 解密后的明文证书,具体解密方法见微...原创 2018-08-27 09:46:46 · 7918 阅读 · 27 评论 -
【 PHP 】项目使用 libsodium 扩展
前面说了微信小微商户下载证书返回的密文解密的方法。其中用到了 string sodium_crypto_aead_aes256gcm_decrypt ( string $ciphertext , string $ad , string $nonce , string $key ) 这个函数。但是这个函数可能你们调用的时候会报错,那是因为使用这个函数需要开启 libsodium 扩展才能使用。...原创 2018-08-28 19:14:31 · 15448 阅读 · 3 评论 -
PHP 开发者该知道的 5 个 Composer 小技巧
Composer是新一代的PHP依赖管理工具。其介绍和基本用法可以看这篇《Composer PHP依赖管理的新时代》。本文介绍使用Composer的五个小技巧,希望能给你的PHP开发带来方便。 1. 仅更新单个库只想更新某个特定的库,不想更新它的所有依赖,很简单: composer update foo/bar 此外,这个技巧还可以用来解决“警告信息问题”。你一定...转载 2018-09-12 11:36:33 · 365 阅读 · 0 评论 -
【laravel】 复杂表单请求验证类,实现一个类对应多个表单
一、序言 laravel 中提供了两种验证请求数据的方法,第一种方法适用于简单的验证,表单验证和业务逻辑放在一起,显得业务代码臃肿,而且重复的验证规则基本也是复制粘贴,代码也不好看,这是关键。本篇教程就不说这个了,需要了解的请戳这里。第二种就是建立请求验证类,下面就详细说一说这个。(本文只介绍了接口验证和返回错误处理,form表单提交可以看文章底部参考文章中的第一个链接)。以下代码写于 l...原创 2018-09-13 21:06:17 · 2249 阅读 · 0 评论 -
【laravel】updateOrCreate 和 updateOrInsert 的区别
updateOrCreate() 和 updateOrInsert() 两个方法都是用来保存数据的时候方便操作“ 存在即更新,反之则创建 ”的 updateOrCreate 方法使用的是 Eloquent ORM 操作的数据库,updateOrInsert 方法使用的是查询构造器 updateOrCreate 返回值是\Illuminate\Database\Elo...原创 2018-09-14 10:14:46 · 46879 阅读 · 0 评论 -
【laravel】laravel Excel V3.1 导出方法详解
放前面说的本篇文章不适用于 laravel Excel 3.0 以下版本。放中间说的( 这里是正文了 )介绍LaravelExcel 旨在成为 Laravel 风格的 PhpSpreadsheet:围绕 PhpSpreadsheet 的简单但优雅的包装,其目标是简化导出和导入。安装composer require maatwebsite/excel该Maatwebsite\Ex...原创 2018-11-02 17:23:47 · 15744 阅读 · 7 评论 -
【PHP】静态方法调用非静态方法和静态调用非静态方法代码解读
static 关键字用来修饰属性、方法,称这些属性、方法为静态属性、静态方法。在类的静态方法中是不能直接以$this-&gt;test()的方式调用非静态方法的。还有框架中静态的调用非静态方法是怎么回事???。。。算了,不知道说啥具体为啥看代码注释:&lt;? class Pay{ public function bike(){ return 'I\'m g...原创 2018-11-15 12:21:09 · 1858 阅读 · 1 评论 -
【 PHP 】取出一个字符串中长度最大的回文字符串
取出一个字符串中长度最大的回文字符串<?php function func($str) { // 初始化最大回文序列中间坐标 $maxxy = 0; // 初始化最大回文长度 $maxLength = 0; // 初始化一个空数组存储每次的回文序列中间坐标(key)和回文长度(value) $arr = []; ...原创 2018-11-20 11:11:48 · 577 阅读 · 0 评论 -
【 PHP 】发送邮件
PHP发送邮件的示例。首先下载PHPmailer ,下载地址: https://github.com/PHPMailer/PHPMailer/<?php// ini_set("display_errors", "On");// error_reporting(E_ALL | E_STRICT);header("content-type:text/html;charset=ut...原创 2018-11-20 11:16:26 · 907 阅读 · 0 评论 -
【PHP+MYSQL】批量插入时表中有相同数据的话则批量更新
应用场景有时候我们向数据库插入记录时,有时会有这种需求,当符合某种条件的数据存在时,去修改它,不存在时,则新增数据的情况。比如说系统配置则一块,如有下表:CREATE TABLE `system_config` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(60) NOT NULL DEFAULT '...原创 2018-11-20 14:20:06 · 1111 阅读 · 0 评论 -
PHP 过滤多维数组中的空值
/** * clearEmptyValue 清除多维数组里面的空值 * @param array $array * @return array * @author liuml * @DateTime 2018/12/3 11:27 */function array_filter_recursive(array &amp;amp;amp;amp;$arr){ if (empty($arr)) ...原创 2018-12-08 15:14:46 · 4079 阅读 · 0 评论 -
PHP 使用证书实现 XML 数字签名和验签( SHA256 with RSA)
首先需要安装扩展 xmlseclibs地址:https://github.com/robrichards/xmlseclibs然后看下面示例(github上面也有测试的调用示例)/** * generateXMLSignFields XML生成签名域 * Use sha256withrsa algorithm to generate XML internal signature *...原创 2018-12-26 20:19:39 · 3015 阅读 · 0 评论 -
【PHP】openssl_sign(): supplied key param cannot be coerced into a private key
错误原因有时候在本地使用RSA秘钥没有问题,在服务器上面会报错。这种情况可能是 RSA 的秘钥格式问题导致解决办法使用到的函数wordwrap定义和用法wordwrap() 函数按照指定长度对字符串进行折行处理。注释:该函数可能会在行的开头留下空格。// 私钥$privateKey = "-----BEGIN RSA PRIVATE KEY-----\n" . wordwra...原创 2018-12-28 17:23:53 · 12370 阅读 · 0 评论 -
PHP 判断解析 XML 转换成数组,递归处理多维数组转XML
说明部分说明在示例代码的注释部分一、判断字符串是否是标准XML格式xml_parse定义和用法xml_parse() 函数解析 XML 文档。如果成功,则返回 true。否则,返回 false。语法xml_parse(parser,xml,end)参数描述parser必需。规定要使用的 XML 解析器。xml必需。规定要解析的 XML 数据。...原创 2018-12-24 17:48:37 · 1235 阅读 · 0 评论 -
【PHP】XML中含有空元素的情况下转数组空元素变成数组的问题
有时候会遇到xml转换成数组的时候,xml里面的数据有可能是返回字符串,或者空,返回字符串时一切正常,但是但没有数据时,节点元素为空的情况下转换成数组就会出问题,那个空元素就会被转换成数组。因为空节点在simplexml_load_string函数转换后会是一个SimpleXMLElement空对象,当你用json_encode后也是空对象{},转成数组后自然是空数组。解决方法看下面代码部分...原创 2019-01-24 17:51:20 · 1885 阅读 · 1 评论 -
微信小微商户下载平台证书接口(PHP SHA256 with RSA 签名,AEAD_AES_256_GCM解密方法)
一、序言 最近在做微信小微商户接口对接,对接里面的下载平台证书接口中遇到的坑在这记录下。二、资料 1、《1.1. 下载平台证书接口(v5.1)》 查看 2、 《nodejs 如何通过API 证书(权威CA颁发)下载敏感信息加密公钥证书?》 查看二、正文 这个接口是微信最近出的东西,网上也找不到什么例子,然后接口一直返回签名校验失败让我很难受。对着文档...原创 2018-08-22 10:09:19 · 13202 阅读 · 25 评论