PHP
文章平均质量分 62
江南极客
技术渣男!
展开
-
PHP实现国密SM3算法
最近对接一个第三方系统,对方要求接口签名加密使用sm3加密算法,不过php没有原生支持该算法的函数,所以需要借助外力了。网上查资料发现在PHP中实现sm3算法,大概有一下三种途径:A.使用PHP的OpenSSL扩展实现B.使用一个PHP扩展(php-sm3)实现C.使用大佬封装好的PHP类库实现方法A openssl在1.1.1版本中支持了国密算法,但是我看了一下我的环境,内置的openssl是1.0.2k,版本比较老。但是...原创 2021-09-15 16:06:45 · 6388 阅读 · 1 评论 -
Linux下PHP安装ssh2扩展
新部署了一套服务器,在手动执行队列任务的时候,出现如下错误:PHP Startup: Unable to load dynamic library 'ssh2.so'顾名思义:缺少ssh2扩展,好开始安装!1.编译安装 libssh2# cd /usr/local/src# wget http://www.libssh2.org/download/libssh2-1.4.2.tar.gz# tar -zxvf libssh2-1.4.2.tar.gz# cd libssh2-1原创 2021-03-18 14:21:45 · 914 阅读 · 0 评论 -
PHP对接美团配送接口遇到的坑
最近对接美团配送,在初次调用接口的时候,就遇到了几个坑,尽管美团配送开发文档比较规范,可还是有不够详尽的地方,在对接的时候容易踩坑。一、参数传递在调用接口传参的时候,都使用post请求方式,我尝试了将参数以数组、json、XML的形式传递,皆返回错误信息:缺少xxx参数,我仔细检查,参数都有!没办法对接到他们的技术,而且他们的客服又不懂,能查的资料又很少,费好大劲终于知道参数要自己拼接成类似于a=&c=3&b=1的字符串,然后传递过去。二、签名加密鉴于参数传递要拼接成key1=原创 2020-08-06 19:11:50 · 2065 阅读 · 10 评论 -
PHP使用json_encode后斜杠“/”被自动转义和浮点类型数据出现精度问题
最近跟另一个部门进行数据对接,对方使用Java开发,双方协议一套加密规则,加密之前先将数据转化成json格式,然后用一系列规则进行加密生成密钥,然后我们系统(PHP开发)对传输的数据要加密然后验签判断,结果总是报签名失败的问题!基础数据如下:$product = [ 'id' => 1, 'title' => '茅台飞天52°', 'product_class_title' => '酒水/饮料', 'price' => 9.01,];$re原创 2020-07-11 18:04:55 · 1388 阅读 · 0 评论 -
PHP上传文件报错:POST Content-Length of 9804009 bytes exceeds the limit of 8388608 bytes
上传文件遇到一种情况就是小文件可以上传成功,但是大文件上传,$_FILES 接收到是空数组,首先想到的就是PHP上传文件大小限制,于是修改了php.ini中upload_max_filesize = 500M;发现没有作用,原来PHP对post请求发送的数据大小也有限制,默认是8M也就是上边错误信息里边的8388608 bytes,然后改一下php.ini中post长度限制就好了p...原创 2019-11-18 15:44:22 · 5493 阅读 · 0 评论 -
PHP实现汉字转拼音
用PHP实现汉字转拼音,网上有很多方法,其实主要还是编码的转换,基本的实现原理都是先找到汉字对应的ASK码,然后将得到的ASK码与事先建立的拼音字母ASK码字典遍历匹配,找到对应的拼音字母,所以是否可以准确得到自己想要转换的结果,完全取决于自己建立的ASK码字典是否完整强大。转载 2017-11-01 19:20:36 · 6997 阅读 · 5 评论 -
PHP通过推广二维码追溯统计用户来源
为了满足用户渠道推广分析的需要,公众平台提供了生成带参数二维码的接口。使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送。推广用户在生成自己的推广二维码的时候,可以带上用户的身份标识(比如用户id),那么其他人在扫描这个带有UID参数的二维码关注公众号时,公众号可以获取到二维码里边的参数(即UID),那么就很容易判断和追溯用户来源了。原创 2017-11-14 19:37:26 · 2507 阅读 · 1 评论 -
Scope参数错误或没有Scope权限
在微信开发过程中,最常用的操作就是用户授权登录获取用户基本信息,新手开发可能会遇到很多错误而且不知所措,别问我怎么知道的,我也是从小白过来的。今天讲一下最常见的错误之一:Scope 参数错误或没有 Scope 权限原创 2017-11-16 19:15:53 · 152589 阅读 · 3 评论 -
PHP实现生成推广海报
仔细分析一下,推广海报必要的要素就是海报背景图和二维码,这两者都容易生成,但要两者结合到一起组合成为一张图二维还要可以保存到本地便于分享出去,这就是难点了,在H5中可以借助canvas画出来完成类似于截图的功能,但放到小程序里边很多局限性。那么我们直接在后台生成海报,前台直接调用。原创 2017-12-20 15:37:31 · 7987 阅读 · 19 评论 -
PHP保留两位小数
我们在项目里经常需要保留小数位数,比如显示金额的时候通常需要保留两位小数位数,除了可以在设计数据库的时候将金额字段设置为decimal(n,2)形式的,通过PHP也可以处理小数数位,PHP中可以处理数字的函数很多,就列举一下常用的处理数字的函数:原创 2017-12-21 16:17:48 · 6540 阅读 · 0 评论 -
PHP获取数组中指定的一列
对于一个多维数组(以二维数组为例),经常需要获取到其中的一列,比如有几条用户数据,是一个二维数组,现在需要获取到这几个用户的名字,可以有多种方法实现原创 2017-12-21 18:59:13 · 4419 阅读 · 0 评论 -
PHP浏览器中直接输出图片
在浏览器中输出图片,最简单的方法当然是使用HTML的img标签,直接传入图片路径或者链接。但有时候我们需要把图片做一些处理,比如改一下图片质量或者尺寸再显示出来,我们可以使用PHP内置的图片处理函数imagecreatefromjpeg(或imagecreatefrompng)由文件或 URL 创建一个新图象和imagejpeg(或imagepng),通过 header() 发送 Content-type: image/jpeg 可以使 PHP 脚本直接输出 JPEG 图像。原创 2017-09-21 20:35:18 · 22212 阅读 · 1 评论 -
PHP逐行读取txt文件
PHP中从实现文件数据的导入导出,可以使用Excel文件,使得数据更加直观,但是操作Excel文件在项目中通常需要依赖PHPExcel类文件,而且执行效率不如txt文本文件。如果数据的列数比较多,而且需要对导出结果进行统计的就是用Excel,如果列数少而且不需要对结果进行过多处理的,可以使用txt文件。原创 2017-09-21 20:12:28 · 11979 阅读 · 0 评论 -
PHP微信支付之扫码支付
在手机微信端进行微信支付,直接调起JSAPI支付,这可以实现在微信里边的开的页面进行支付,比如微商城,微信端JSAPI支付详见:PHP实现微信支付(jsapi支付)和退款(无需集成支付SDK);但有时候商城还有PC端,需要在PC端使用微信支付,则需要PC端生成支付二维码,然后微信扫码完成支付。原创 2017-10-17 19:09:03 · 7236 阅读 · 9 评论 -
PHP实现微信支付(jsapi支付)和退款(无需集成支付SDK)
之前有写过几篇文章将微信支付和退款:1.PHP实现微信支付(jsapi支付)流程2.ThinkPHP中实现微信支付(jsapi支付)流程3.PHP实现微信申请退款这几篇都是使用了微信官方给的PHP版本的SDK,进行支付的时候写代码可以省不少事,步骤也挺简化,但是集成SDK有很多坑,很多人说引入的SDK老报错,或者说官方SDK本身有不少错误,改起来很麻烦,也确实挺麻烦的,对于新手搞支付很容易被...原创 2017-08-31 10:04:28 · 20379 阅读 · 73 评论 -
微信支付之公众号发红包和企业付款
微信现金红包,是微信支付商户平台提供的营销工具之一,上线以来深受广大商户与用户的喜爱。商户可以通过本平台向微信支付用户发放现金红包。用户领取红包后,资金到达用户微信支付零钱账户,在日常运营中为商户的营销活动带来热烈的反响。原创 2017-08-30 10:50:29 · 10671 阅读 · 43 评论 -
微信网页获取用户基本信息(无需弹出授权页面)
通过OpenID来获取用户基本信息。这种方式可就简单多了,在用户不知不觉的情况下,我们就拿到了他的个人信息,而且这样获取的信息比授权获取的还要多,比如这样还可以知道该用户是否关注以及关注时间。原创 2017-09-01 20:34:58 · 20263 阅读 · 9 评论 -
微信公众号获取用户的openid
公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的。对于不同公众号,同一用户的openid不同)。公众号可通过本接口来根据OpenID获取用户基本信息,包括昵称、头像、性别、所在城市、语言和关注时间。原创 2017-09-01 20:09:01 · 27677 阅读 · 1 评论 -
微信支付之企业付款
企业付款业务是基于微信支付商户平台的资金管理能力,为了协助商户方便地实现企业向个人付款,针对部分有开发能力的商户,提供通过API完成企业付款的功能。 比如目前的保险行业向客户退保、给付、理赔。原创 2017-06-02 13:28:15 · 14878 阅读 · 26 评论 -
微信小程序中实现微信支付
最近做小程序,涉及到微信支付,看了看微信小程序开发文档,尽管之前做过微信支付,还是有点懵逼,不过好在之前研究过,不然真的是无从下手。对比了一下发现,其实小程序中做支付比公众号支付要省事很多,因为不需要支付授权目录,也不需要授权域名,但是支付流程却比公众号多了一步,就是统一下单是预支付,然后需要对预支付的结果再次签名之后,才调起支付。前期准备:1.开通了微信支付,并且小程序绑定了微信支付;2.准备好...原创 2017-06-24 17:21:07 · 69091 阅读 · 51 评论 -
微信小程序获取用户的openid
微信小程序中获取用户的openid的方式有两种:方法一:先获取用户信息(wx.getUserInfo),然后将返回的用户信息中包含openid的敏感信息解密得到用户的openid一种是先获取用户信息,然后将返回的用户信息中包含openid的敏感信息解密得到用户的openid,这种方法获取用户openid比较麻烦,还涉及到数据解密,而且如果用户拒绝授权,则获取不到。这里不细说此方法,详见文档。方法二...原创 2018-02-09 15:37:11 · 3910 阅读 · 0 评论 -
PHP实现支付宝支付
支付宝付款,开发上比起微信支付要简单很多,今天就以支付宝手机网站支付为例,简单讲一下实现方法:前期准备,当然就不多说了,当你想开发使用支付宝支付,必然需要在支付宝开放品台注册认证并且创建好应用并且具备手机网站支付功能!不明白可以查看支付宝官方文档(https://docs.open.alipay.com/203/107084/)一.开发准备开发之前,需要准备以下信息1.支付宝应用a...原创 2019-05-16 20:57:42 · 1639 阅读 · 0 评论 -
对手机号加星号处理
项目中经常需要公布一些用户的信息,比如抽奖结果展示,排行榜等。但是很多涉及到用户隐私,比如昵称,姓名,手机号等,这时候就要对用户敏感信息做处理,最常见的就是对手机号加星号处理。方法也非常简单,简单到我再写这篇之前都在考虑要不要发出来。不过还是简单分享一下,如果有兄弟用得上至少可以节省一点时间。/** * 字符串加指定符号处理 * @param string $str 源字符串 * @p...原创 2019-05-05 17:51:58 · 3464 阅读 · 5 评论 -
PHP实现图片base64编码与解码
PHP有内置的base64_encode与base64_decode负责进行Base64编码与解码。一.图片base64编码只要将图片流读取到,而后使用base64_encode进行进行编码然后拼接上前缀(data:image/png;base64,)即可。/** * 图片base64编码 * @param string $img * @param bool $imgHtmlCo...原创 2019-03-07 20:00:30 · 11483 阅读 · 3 评论 -
php curl经典最常用的5个例子
php curl常用的5个例子我用php ,curl主要是抓取数据,当然我们可以用其他的方法来抓取,比如fsockopen,file_get_contents等。但是只能抓那些能直接访问的页面,如果要抓取有页面访问控制的页面,或者是登录以后的页面就比较困难了。1,抓取无访问控制文件<?php $ch = curl_init(); curl_setopt($ch, CURL...转载 2019-02-13 15:40:34 · 2291 阅读 · 0 评论 -
php的curl请求设置header参数
curl请求参数设置时,CURLOPT_HTTPHEADER 设置 HTTP 头字段的数组。 格式: array('Content-type: text/plain', 'Content-length: 100')简单示例:function http_post($sUrl, $aHeader, $aData){ $ch = curl_init(); curl_setopt...原创 2019-02-13 15:25:01 · 43127 阅读 · 2 评论 -
PHP的curl函数
要使用cURL来发送url请求,具体步骤大体分为以下四步:1.初始化2.设置请求选项3.执行一个cURL会话并且获取相关回复4.释放cURL句柄,关闭一个cURL会话curl基础例子:<?php// 创建一个新cURL资源$ch = curl_init();// 设置URL和相应的选项curl_setopt($ch, CURLOPT_URL, "http://w...原创 2019-02-13 14:26:38 · 1168 阅读 · 0 评论 -
PHP远程抓取网站图片并保存在本地文件中
<?php/** * 抓取图片 * Class download_image * Time: 2019/1/31 13:49 * Author 江南极客 */class download_image{ public $save_path; //抓取图片的保存地址 //抓取图片的大小限制(单位:字节) 只抓比size比这个限制大的图片 ...转载 2019-02-16 11:40:15 · 1931 阅读 · 0 评论 -
12306列车时刻表查询api功能实现
最近乘坐火车,在车上像快要看看列车时刻表,大概知道什么时间到达什么车站,起初是每次都打开12306APP查询,然后感觉每次打开APP很麻烦,就去微信小程序里边搜索,果然有我们伟大的猿类同胞做了这件事。于是乎,我就想12306是不是有开放平台提供了接口供我们使用,查了查竟然没有,聚合数据有此类接口(https://www.juhe.cn/docs/api/id/22),还是收费的。身为一个勤劳好学的...原创 2019-02-16 11:20:05 · 24108 阅读 · 2 评论 -
PHP实现图片压缩
/** * 生成图片 * @param string $im 源图片路径 * @param string $dest 目标图片路径 * @param int $maxwidth 生成图片宽 * @param int $maxheight 生成图片高 */function resizeImage($im, $dest, $maxwidth, $maxheight) { $im...原创 2018-09-10 15:43:02 · 2392 阅读 · 2 评论 -
PHP使用OSS存储
1.SDK的下载与安装见阿里云OSS文档 : https://help.aliyun.com/document_detail/85580.html?spm=a2c4g.11186623.6.768.14915113ZsNHlV2.上传文件(1)在项目中引入OSS类库 , 并申明命名空间require_once "./vendor/aliyun_oss/autoload.php";us...原创 2018-09-10 15:19:53 · 6435 阅读 · 0 评论 -
PHP处理emoji表情
字符串包含emoji表情 , 在使用MySQL直接存储的时候 , 有些特殊字符会保存失败 , 比如保存用户昵称 , 有些用户昵称带有emoji表情 , 然后在保存的时候 , 会出错 , 通常这种情况的处理办法就是 , 直接将emoji表情过滤掉 ; 也有时候需要保留emoji表情 , 那么就只能转义保存 , 取出来的时候 , 再转回来 , 类似于编码和解码!1.过滤emoji表情/**...原创 2018-09-10 14:55:49 · 4453 阅读 · 1 评论 -
Redis函数在PHP的用法实例总结
本文实例总结了php Redis函数用法。分享给大家供大家参考,具体如下:一直在拿PHP使用Redis,但是总感觉不牢靠,索性借这个时间空余一气呵成, 把PHP中所有操作到的Redis命令,几乎全敲个遍,包括它的返回值都是盯对过的,哪怕下回忘了也可以直接过来查嘛~大家也可以放心使用。测试环境: PHP:5.5 Redis:2.4.6参考网址: https://github.com...转载 2018-02-26 10:51:56 · 1081 阅读 · 1 评论 -
PHP生成微信小程序二维码
通过后台接口可以获取小程序任意页面的二维码,扫描该二维码可以直接进入小程序对应的页面。官方推荐生成并使用小程序码,它具有更好的辨识度。目前有3个接口可以生成小程序码,开发者可以根据自己的需要选择合适的接口。接口A: 适用于需要的码数量较少的业务场景 接口地址:https://api.weixin.qq.com/wxa/getwxacode?access_token=ACCESS_TOKEN参数如下...原创 2018-02-10 10:46:11 · 10250 阅读 · 0 评论 -
微信小程序发送模板消息
微信小程序发送模板消息,跟公众号发模板消息有区别,小程序不存在订阅(关注),所以没办法通过对话窗口给用户推送消息,小程序下发模板消息统一通过微信“服务通知”发送,如下图:但是其实现流程跟公众号发模板消息一样,步骤如下:1. 获取 access_tokenaccess_token 是全局唯一接口调用凭据,开发者调用各接口时都需使用 access_token,需妥善保存。做过微信开发和公众号开发,这都...原创 2018-02-09 16:41:56 · 2298 阅读 · 0 评论 -
PHP实现微信申请退款
前面讲了怎么实现微信支付,详见博文:PHP实现微信支付(jsapi支付)流程。 和 ThinkPHP中实现微信支付(jsapi支付)流程。由于业务需求,还需要有微信退款,经过研究和摸索,也终于搞定了。原创 2017-06-02 11:23:26 · 18239 阅读 · 37 评论 -
ThinkPHP中实现微信支付(jsapi支付)流程
之前写过一篇文章讲了 PHP实现微信支付(jsapi支付)流程 ,详见文章:PHP实现微信支付(jsapi支付)流程。当时的环境是没有使用框架的,直接在一个域名指向的目录下边新建目录之后访问该目录实现的,但应用到框架中,还是有一些问题,在ThinkPHP中,由于路由规则与支付授权目录有出入,所以会报错。本篇讲讲在TP中集成微信支付的流程。原创 2017-05-27 19:28:56 · 35426 阅读 · 72 评论 -
PHP实现微信支付(jsapi支付)流程
最近接触到一个项目,涉及到微信支付,搞微信开发这么久以来,还没搞过支付,之前也就搞过公众号发红包,感谢前辈们的探索,我看了他们的博文,让我少走了很多弯路。原创 2017-05-26 13:57:28 · 42963 阅读 · 56 评论 -
微信JSSDK开发信息配置
微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包。通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信分享、扫一扫、卡券、支付等微信特有的能力。但是很多人在配置和使用的时候,老是出各种错误。最近项目也涉及到这个,就记录一下过程,并对方法进行封装。基本步骤如下:1.绑定域名先确保你原创 2017-03-07 11:14:48 · 14195 阅读 · 0 评论 -
微信网页授权获取用户基本信息
如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。网页授权分为两种,这两种以scope来区别:1、以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了原创 2017-03-07 14:03:24 · 17384 阅读 · 5 评论