PHP
文章平均质量分 53
行走的码农霖悦
奔走在自己的热爱中,一路向前,充满阳光️
展开
-
php生成短链接:将数字转成字母,将字母转成数字
一、基类方法:定义字符串、编写转换方法class NumberHelper{ public static $str="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";/** * Param:将数字转为短字符串 * User: 赫陈 * Date: 2022/4/11 * @param $number * @return string */public static function gener.原创 2022-04-16 18:14:50 · 847 阅读 · 2 评论 -
php高精度计算
一、前方有坑php在使用加减乘除等运算符计算浮点数的时候,经常会出现意想不到的结果,特别是关于财务数据方面的计算,给不少工程师惹了很多的麻烦。比如今天工作终于到的一个案例:$a = 2586;$b = 2585.98;var_dump($a-$b);期望的结果是:float(0.02)实际结果:float(0.019999999999982)人生有坑,处处提防二、防坑攻略:1、通过乘100的方式转化为整数加减,然后在除以100转化回来……2、使用num转载 2022-04-14 15:37:56 · 6844 阅读 · 0 评论 -
laravel定时任务怎么写?
第一步:用PHP命令创建你想要执行的任务的文件,用 php artisan make:command 后面加上名称然后回车,看到successfully说明创建成功;执行完成后在app/console/commands文件夹中就会看到创建的文件第二步:点击文件名称,编辑文件写上需要执行的程序:<?phpnamespace App\Console\Commands;use Illuminate\Console\Command;use App\Service\Basket.原创 2021-11-05 10:08:37 · 273 阅读 · 0 评论 -
php抽奖概率算法
做网站类的有时会弄个活动什么的,来让用户参加,既吸引用户注册,又提高网站的用户活跃度。同时参加的用户会获得一定的奖品,有100%中奖的,也有按一定概率中奖的,大的比如中个ipad、iphone5,小的中个Q币什么的。那么我们在程序里必然会设计到算法,即按照一定的概率让用户获得奖品。先来看两个概率算法函数。算法一/** * 全概率计算 * * @param array $p array('a'=>0.5,'b'=>0.2,'c'=>0.4) * @return st转载 2021-10-25 18:24:27 · 1636 阅读 · 0 评论 -
laravel框架生成二维码和小程序码
1.生成二维码 public function Qrcode($rootNo) { //创建画板 $this->imgObj = self::canvas(320, 320); /**** * 生成二维码 */ $dir_path = public_path('image/basket'); if(!is_dir($dir_path)){ ...原创 2021-10-25 10:51:07 · 417 阅读 · 0 评论 -
laravel框架的参数验证
最近几年一直在用laravel框架,忽略了框架自身的验证类,细细研究,发现还挺好用,看了源码,发现参数的用途,第一个参数时接收到的参数,第二个参数是规则,第三个规则定义,第四个参数每个参数的自定义属性,可以写参数的汉字翻译,需要写上每个参数的规则public function transferOut(Request $request){ $params = $request->all(); $validator = \Validator::make($params,[ .原创 2021-10-20 15:12:41 · 790 阅读 · 0 评论 -
mac自带php 安装PHP扩展 freetype2
1、去网站下载freetype扩展文件:https://download.savannah.gnu.org/releases/freetype/我下载的是最新版的2、下载完成后,进入到下载目录解压下载包:cd /Users/hongbo/Downloads/tar -zxf freetype-2.11.0.tar.gzcd freetype-2.11.03、进入目录后,执行安装命令./configure --enable-static --enable-shared (没有指定p原创 2021-08-09 17:25:33 · 912 阅读 · 3 评论 -
laravel配置多数据库连接,数据库连接报错
问题:在laravle框架中配置了多数据库连接,但是一直连接不上,报如下错误:Database connection [{$name}] not configured。问题原因:查了好多资料,才发现原来laravel 框架会把配置文件缓存,目的是为了给应用加速,使用 Artisan 命令config:cache将所有配置文件的配置缓存到单个文件里,这将会将所有配置选项合并到单个文件从而可以被框架快速加载。应用一旦上线,就要运行一次php artisan config:cach...原创 2020-12-22 15:19:18 · 3567 阅读 · 0 评论 -
laravel框架发送微信模版消息
1、发送微信模版消息类<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;use Log;use App\Tools\MessageSender;use App\Tools\MaYiResponse;use App\UserLogin;use Validator;use App\Tools\SmsSender;class MessageController extends Controller{.原创 2020-12-17 11:00:13 · 856 阅读 · 0 评论 -
laravel框架发送短息消息(微网通短信和创蓝短息)
1.发送短信封装类<?phpnamespace App\Tools;use Redis;use App\Tools\ChuanglanSmsApi;use App\Tools\WeilinkSmsApi\SmsCommitSender;use Log;class SmsSender { protected $mobile; protected $type; protected $smsToken; protected $expire = 3.原创 2020-12-17 10:55:46 · 384 阅读 · 0 评论 -
laravel 框架使用\Mpdf\Mpdf生成PDF文件
1.composer安装扩展:在composer.json文件中加入"niklasravnsborg/laravel-pdf":"*",然后进入项目根目录,输入composer update 命令,下载扩展包 代码:$mpdf = new \Mpdf\Mpdf(); //设置中文字体 $mpdf->autoScriptToLang = true; $mpdf->autoLangToFont = true; .原创 2020-11-02 10:35:52 · 1855 阅读 · 0 评论 -
laravel SQL查询语句
模型中写好对应关系,如下:public function partners(){ return $this->hasOne('App\PartnersDesc', 'partner_id', 'partner_id');}控制器中写如下:$product = Product::with(['partners' => function($query) { $query->select('partner_name', 'partner_short_n原创 2020-09-24 19:03:45 · 1506 阅读 · 0 评论 -
引用PHPMailer发送邮件方法
//发送邮件方法,先下载PHPMaileruse PHPMailer\PHPMailer\PHPMailer;function sendEmail($email,$title,$content){ try{ $mail = new PHPMailer();// $mail->SMTPDebug = 1; //邮件调试模式 $mail->isSMTP(); //设置邮件使用SMTP ...原创 2020-05-28 10:08:52 · 415 阅读 · 0 评论 -
Mac配置PHP环境(brew安装nginx+php)
第一步:检查本地有没有PHP:输入php -v 命令,查看,如果有PHP版本,说明本地有PHP(Mac OSX 10.9以后的系统自带了PHP、php-fpm)我检查了一下,本地有,就不用安装了第二步:安装nginx直接输入 brew install nginx 然后回车就行,等待好一会儿,自动安装看到下面的提示,如图,说明安装成功,执行 brew services star...原创 2020-04-22 18:31:48 · 5838 阅读 · 9 评论 -
PHP生僻函数总结
$querystr = strtoupper($query);//字符串转大写$requestbody = addslashes($requestbody);//在双引号之前加反斜杠$requestbody = json_encode($body,JSON_UNESCAPED_UNICODE);//序列化json字符串,...原创 2020-01-13 11:56:45 · 249 阅读 · 0 评论 -
利用PHPMailer扩展,完成网易企业邮箱发送邮件功能
做了好几次发送邮件的功能了,都没有总结,今天总结一下吧,有什么不对的地方,可以留言,共同探讨1.这次做的是网易的企业邮箱,网易的企业邮箱和别的邮箱还不一样,客户端设置特别简单,没有任何说明,找了老半天smtp的开启,就是没有,只有POP和IMAP两个,结果人家自动开启,根本不需要开启,最后设置客户端授权码,完成之后复制,保存好,页面关闭以后是不会再显示的2.至于地址,网易有一个专...原创 2019-12-06 11:41:39 · 1907 阅读 · 3 评论 -
php冒泡排序简解
借今天的1024程序员节,复习一下以前的基础知识,要不然时间久不用都忘掉了要。冒泡排序:从大到小,或者从小到大,相邻的两个数依次排序,就和小时候老师按照个子大小排队似的,是不是很形象,哈哈哈。。。从小到大首先,定一个数组;$a= array(3,2,4,6,1,8,7,10,9);其次,用代码的思维分析下,相邻的两个数,如果前面的大于后面的,是不是后面的得排到前面来,那么怎么...原创 2019-10-24 16:10:09 · 140 阅读 · 4 评论 -
单例模式连接redis类,并在项目中运用redis缓存数据
一、单例模式连接redis类,这个类可以直接放在项目中的extend扩展文件夹中,在项目中使用的时候可以直接实例化用<?phpnamespace MyRedis;class RedisPackage{ private static $handler = null; private static $_instance = null; //默认配置 p...原创 2019-10-21 20:45:26 · 911 阅读 · 0 评论 -
启动基于workman的gatewaywork框架的服务器shell脚本
一、启动workman的shell脚本#! /bin/shproc_name="WorkerMan" #进程名称log_name="/home/wwwroot/highway/workerman.log" #日志名称proc_num=`ps -ef | grep $proc_name | grep...原创 2019-10-21 20:24:55 · 482 阅读 · 0 评论 -
tp5框架整合gatewayworker,gatewayclient推送数据进行网页数据交互
官方文档地址:http://doc2.workerman.net/work-with-other-frameworks.html看着文档一步一步做是没问题的,但是官方文档真正的打通任督二脉还得理解一下其中的原理我的上一篇博客详细的介绍了gatewayworker的安装方式,以及我遇到的各种坑,填坑的过程真是刺激,哈哈哈1.首先:安装了gatewayworker的直接安装gatewayc...原创 2019-10-15 16:19:11 · 3171 阅读 · 0 评论 -
Linux服务器安装phpredis扩展
1、phpinfo查看PHP版本,再查看相应的phpredis版本,一点要找对版本,要不然会编译失败的,我的是php7.2.23,所以我选择的是5.0.2的版本查看phpredis版本地址:https://pecl.php.net/package/redis2.下载phpredis,可以用命令上传,也可以直接下载,再用ftp上传3.解压并进入phpredis-5.0.2目录:ta...原创 2019-10-08 15:10:52 · 335 阅读 · 0 评论 -
php调取摄像头实现拍照功能
最近做的商户后台要实现调取摄像头拍摄用户打卡照片的功能,找资料研究了下,终于黄天不负有心人,成功了,下面我分步骤将代码贴出来,希望能有帮助代码有点多,但是每一步都很好理解,首先是HTML代码,写一个form表单,到时候上传图片时ajax异步提交,不需要引入别的js,h5有方法能直接调取媒体设备。不过要注意的是好几个浏览器比如谷歌,QQ,360等因为安全原因,没有HTTPS协议的网站一律认为...原创 2018-11-09 18:40:22 · 11188 阅读 · 11 评论 -
使用 php 获取十分钟、一天、一小时、一个月、一年后的时间方法实例代码
//获取当天的时间值$timeWhere = "DATE_FORMAT(r.catch_time,'%Y-%m-%d') = '$date'";十分钟之后的时间//十分钟之后 600秒echo $stop_time="2019-06-17 17:55:25";echo '十分钟之后'.$ten=date("Y-m-d H:i:s",strtotime($stop_time)+60...转载 2019-07-11 16:26:06 · 2496 阅读 · 0 评论 -
Linux服务器 安装php-memcached 扩展 和 memcache扩展
一、安装libmemcached依赖库及php-memcached扩展包1.各版本libmemcached下载地址:https://launchpad.net/libmemcached/+download找到合适的版本,截至2019-10-08为止,最新本版的是18的,所以,依次执行如下命令:wget https://launchpad.net/libmemcached/1.0/1...原创 2019-10-08 11:49:05 · 217 阅读 · 0 评论 -
lnmp1.5升级PHP版本到PHP7.2.23
最近发现公司旧服务器的版本过低,想着升级试试,查了好多资料,最后发现lnmp1.5自带的upgrade.sh文件可以直接升级php版本,包括nginx,mysql等等,都可以运行此文件升级。本来想直接升级php7.3的,奈何lnmp1.5不支持,最后无奈之下还是选择了7.2.23版本的,看了某个大神的博客说是速度在web端是完全感觉不出来的,所以就将就将就吧。下面就我遇到的问题以及解决方法...原创 2019-09-28 18:50:47 · 3686 阅读 · 0 评论 -
wangEditor-3.1.1 后台文本编辑器(含上传图片)
换了框架以后,百度编辑器用不了了,不支持PHP文件在静态文件夹中执行,查找了各种编辑器,最后决定用wangEditor-3.1.1,这个编辑器,好处就是可以自定义上传图片的控制器路径和上传的文件夹,下面是步骤:1.HTML内容<div class="form-group"> <label class="col-sm-3 ...原创 2019-06-03 18:56:19 · 1743 阅读 · 0 评论 -
PHP导出excel数字过大时显示为科学记数法
TP5导出excel数字过大时显示为科学记数法,这种显示对于查看的用户来说是及其不友好的。会将数据结果转变,所以,我们要使其转化为正常的数字串!之所以会显示为科学记数法,是因为是数字表达。但是我们把数字转化为字符串,显示就会不会数字以科学记数法的显示方式了。 //在给需要显示为正常数字的单元格赋值的时候,在值的前面或后面加一个空字符串,这样数值型就自动转换为字符型了。具体实...原创 2019-02-18 14:25:08 · 748 阅读 · 0 评论 -
安装完centOS7 执行ifconfig命令不存在(command not found)的解决办法
给虚拟机安装centOS7以后,执行ifconfig命令,提示命令不存在,可以执行ip命令查看,CentOS 7最小化系统,使用“ip addr”和“ip link”命令来查找网卡详情。要知道统计数据,可以使用“ip -s link”。显示网络接口卡的详细信息,包括IP地址,MAC地址,以及网络接口卡状态之类。ifconfig命令已经过时了,而且在最小化版本的RHEL 7以及它的...原创 2018-12-27 16:37:28 · 1745 阅读 · 0 评论 -
php建立长链接,与tcp即时通讯解决办法
建立tcp链接,刚开始建立短链接,开启,发送数据,接收返回,关闭连接,这样做能实现功能,但是,多个人同时操作,就会只有一个人成功,其他的失败,刚开始流量少可以,但是流量多了就会造成阻塞,在网上找了资料,找了一下几种解决方法:一、php应用服务器上部署一个local-proxy,php与local-proxy之间使用UNIX Domain Socket来通讯,而local-proxy与后端服务进...原创 2018-12-16 11:28:23 · 2721 阅读 · 0 评论 -
linux系统,CentOS7.2安装ffmpeg扩展,PHP用FFmpeg截取视频第一帧作为视频封面,并给图片添加播放视频按钮
最近做公司的项目中,有用户上传视频,后台这边接收视频并上传,获取视频第一帧作为视频封面的功能,在网上查找了好多资料,并且安装 了ffmpeg-php的PHP扩展,由于版本问题,安装好几个版本都不成功,最后放弃安装扩展,后来运行代码发现不用安装那个扩展也能实现截图并上传的功能,所以要截取视屏第一帧,只需要安装FFmpeg和yasm即可,建议先安装yasm,再安装FFmpeg,我这边是一边安装一边排错...原创 2018-10-24 19:55:25 · 10072 阅读 · 13 评论 -
php生成有二维码的背景图片
这几天在做的健身房后台的时候有一个将二维码,还有名称 放置背景图上,并且要居中显示,最后生成健身房图片de功能,查找了各种资料,最后完成了属于享健身平台的每一个健身房的一个带有二维码的图片,并且将图片链接存入数据库中。大概思路是这样的:获取二维码图片,获取背景图片,将二维码图片放置在背景图片上,然后调整X轴,Y轴的位置,最终放置在背景图上合适的位置,保存图片,然后获取图片,将健身房的名称放置在...原创 2018-10-31 11:00:18 · 1099 阅读 · 0 评论 -
PHP生成随机的四位数的邀请码
最近公司的项目中要有客户的邀请码功能,所以需要生成一个不重复的随机的邀请码,代码逻辑很简单,主要就是长度,字符串,还有随机的数字这几个点,代码如下;生成随机4个邀请码function randomkeys($length){ $info=""; $pattern = '1234567890abcdefghijklmnopqrstuvwxyz'; for($i=0;$i...原创 2018-10-31 10:46:02 · 2526 阅读 · 0 评论 -
PHP读取Excel时间日期格式
读出的时间是天数excel 的日期是从 1900-01-01 开始计算的(php 是从 1970-01-01)两者间有一个天数差 25569时间是格林威治时间所以有PHP code? 1 2 3 $d = 25569; $t = 24 * 60 * 60; echo gmdate('Y-m-d H:i:s', (41728...转载 2018-07-25 15:23:21 · 1894 阅读 · 0 评论 -
PHP判断是否是手机端
这是之前做网站判断的时候用的这位老师的,亲测无误。/*** 判断是否是手机端访问 * @author 朱亚杰 <xcoolcc@gmail.com> */function isMobile(){ // 如果有HTTP_X_WAP_PROFILE则一定是移动设备 if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])) r...转载 2018-06-27 13:27:02 · 843 阅读 · 0 评论 -
tp5连接tcp,创建socket报错处理办法
创建tcp连接时报致命错误,首先去检查PHP扩展中有没有开启:php_sockets,如果没开,开启之后就可以了原创 2019-06-21 14:34:24 · 1692 阅读 · 0 评论 -
php安装Redis扩展Windows版
PHP安装Redis扩展很容易,看着步骤一步一步走,就没问题,要注意自己的PHP版本,选择相应的Redis版本,还有PHP环境的操作位数,选择相应的操作位数,Redis扩展的下载地址:http://pecl.php.net/package/redis1.首先打开自己本地的PHP环境的phpinfo(),查看PHP版本和操作位数,如下图:2.打开PHP扩展Redis链接,如下图:...原创 2019-06-24 13:41:43 · 106 阅读 · 0 评论 -
Windows系统安装composer,并利用composer下载安装yii2框架
1.点击链接下载composer安装包;下载composer(https://getcomposer.org/Composer-Setup.exe)2.安装composer: 2.1 双击刚刚下载的文件,弹出安装框,点击下一步 2.2 选择要安装的目录 2.3 到这一步的时候,要选择和php.exe所在路径一样的路径,且确保php.ini中openssl打开...原创 2019-09-11 14:29:12 · 568 阅读 · 0 评论 -
PHP生成数据字典,适用于PHP7.0以上版本
用PHP生成页面后,保存本地,将文件的后缀名改为.docx,就可以生成数据字典文档,代码如下:注意:代码复制后,只需要修改数据库连接的地址,用户名,密码,数据库,改为自己的数据库地址,放在项目的根目录,直接运行就可以。<?php/**适用于PHP7.0以上版本*/header('content-type:text/html;charset=utf-8'); define('DB...原创 2019-09-03 11:58:11 · 2164 阅读 · 0 评论 -
tp5单独写入日志
第一步:先引入think中的Log,如图:第二步:写入日志,如图:下图是项目中用到的,直接截图了第三步:去日志中查看,如图:结束,想要存的日志已经写入到日志文件中了。就是这么简单,嘻嘻原创 2019-08-27 16:19:17 · 3566 阅读 · 0 评论 -
php_network_getaddresses: getaddrinfo failed: Name or service not known解决办法
php_network_getaddresses: getaddrinfo failed: Name or service not knownphp连接阿里云rds版数据库,刚开始项目域名配置好,解析成功以后,访问是连接不上数据库 的解决办法就是重启php服务service php-fpm restart重启之后就连接成功...原创 2019-07-26 10:27:35 · 8493 阅读 · 0 评论