刘杨造梦程序开发建站
专业从事telegram机器人定制开发以及租用托管;软件、网站、APP、公众号、游戏、ERP、进销存管理系统、财务管理系统、客户管理系统、商城、saas平台以及各大平台小程序定制开发;模版建站、模版小程序、模版公众号、web app、平面设计。专业提供云服务器、免备案服务器、vps、物理机、高防服务器、ADSL服务器、企业邮箱、云虚拟主机、虚拟主机、云数据库、https证书、官网认证、对象存储、域名注册等云计算产品销售以及商标注册、软著等服务。
展开
-
PHP如何实现实时计算使用者消耗服务器资源费用?
至此就已经得出了 执行此脚本总共消耗的费用,但是呢这里只是做一个比方,实际的客户项目比这个复杂的多,我这个比方是经不起推敲的,我也没有其他合适的来打比方,就比如这个里面的硬盘计算,可能实际上已经有使用很多了,但是这次脚本里没有使用在这个公式里费用就为0了,这显然是不合理的,还有就是带宽实际的情况却有两种成本方式,一种按流量一种就是月固定费用,显然也是不合理的。当然本着严谨的原则,这两个问题的坑补上,硬盘计费问题这个很简单 单独计算,也就是计算脚本费用的时候不进行计算,而是在出账单的时候计算然后加上即可,原创 2024-05-28 01:17:18 · 300 阅读 · 0 评论 -
如何解决mkdir()提示No such file or directory?
context 必需。规定文件句柄的环境。Context 是可修改流的行为的一套选项。规定要创建的目录的名称。规定是否设置递归模式。原创 2023-10-19 15:36:07 · 2029 阅读 · 0 评论 -
如何合理设计API接口?
调用方将除“sign”以外的GET请求参数按照参数名称(Key),进行字典升序排序,并将Api接口地址(apiname)和排序后的参数用&拼接起来,参数的值需使用URL编码。本规范仅适用于由服务器端发起调用请求、POST提交数据以及GET请求文本数据结果的API,统一采用UTF-8编码规则,采用JSON格式响应。Content-Type 是 application/x-www-form-urlencoded;使用MD5将步骤一生成的字符串+“&secret=秘钥”加密,并将加密后的字符串转换为小写。原创 2023-08-25 01:51:03 · 349 阅读 · 0 评论 -
如何实现生成压缩包?
8:renameIndex(根据压缩文件内的索引(从0开始)修改压缩文件内的文件名)/把压缩文件内第一个文件修改成newname.txt。9:renameName(根据压缩文件内的文件名,修改压缩文件内的文件名)//把压缩文件内的word.txt修改成newword.txt。4:addFromString(将指定内容的文件添加到压缩包)// 将有指定内容的new.txt文件添加到zip文件中。10:deleteIndex (根据压缩文件内的索引删除压缩文件内的文件)/把压缩文件内第一个文件删除。原创 2023-06-03 15:05:07 · 1027 阅读 · 1 评论 -
如何对接tron?
原文请移步:如何对接TRON波场? – 刘杨造梦程序开发建站原创 2023-06-02 01:19:41 · 164 阅读 · 0 评论 -
php如何实现网页截图?
最近有个需求 客户有个网页 这个网页里的数据就是每隔两分钟就会更新一次 客户的需求就是需要每次数据更新后将截图回传到app里 对 你没看错 就是钉钉微信机器人这种类似公司业绩群使用场景 这种情况下 很显然canvas是无法胜任的 仔细研究之后发现可行的方法有两种:首先我们安装CutyCapt截图工具yum install epel-release#依赖安装yum install Xvfbyum install xorg-x11-fonts*yum install qtwebkit-devel原创 2023-04-15 01:57:44 · 358 阅读 · 0 评论 -
如何部署maven打包的springboot项目?
其中 spring.datasource.username修改为数据库用户名 spring.datasource.password修改为数据库密码 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/demodb 这里的demodb为数据库名。然后我们现在开始上传打包好的前后端到服务器 例如网站根目录是/home/javademo/ 后端打包文件为backend 前端为dist 那么把这两个文件夹传入javademo中。原创 2023-03-31 20:39:37 · 326 阅读 · 0 评论 -
如何实现微信拼手气红包算法(二倍平均值法)
100/10X2 = 20, 所以第一个人的随机范围是(0,20 ),平均可以抢到10元。90/9X2 = 20, 所以第二个人的随机范围同样是(0,20 ),平均可以抢到10元。80/8X2 = 20, 所以第三个人的随机范围同样是(0,20 ),平均可以抢到10元。假设第一个人随机到10元,那么剩余金额是100-10 = 90 元。假设第二个人随机到10元,那么剩余金额是90-10 = 80 元。//判断在获取到的金额和最小金额对比。//判断份数不小于0 或者 于0比较。//金额除以份数乘以2。原创 2023-03-22 20:38:49 · 746 阅读 · 0 评论 -
如何高雅的使用正则表达式?
:字符需要出现0次或1次(ab?可匹配a、ab);* :字符可出现0次以上(ab*c可匹配ac、abc、abbc、abbbc......);+ :字符至少出现1次以上(ab+c可匹配abc、abbc、abbbc......不会匹配ac);{} :可以限定匹配的数量(a{6}b匹配aaaaaab;a{1,3}b可匹配ab、aab、aaab,a的数量在1-3之间;a{2,}b可匹配ab、aab、aaab.....,a的数量大于2);原创 2023-02-15 14:28:13 · 196 阅读 · 0 评论 -
php的declare命令如何使用?
php中的declare结构用来设定一段代码的执行指令declare用于执行3个指令:ticks,encoding,strict_typesdeclare结构用于全局范围,影响到其后的所有代码(但如果有declare结构的文件被其他文件包含,则对包含他的父文件不起作用)ticks:时钟周期例如declare(ticks=1);表示每执行一条语句就执行一次register_tisk_function()注册的函数。原创 2023-02-11 18:23:43 · 976 阅读 · 0 评论 -
如何解决thinkphp验证码不能显示问题?
特别需要注意的是前面3个 ,对了,还有一个原因session没有开,默认是关闭的,需要自行开启,而这里的验证码验证需要使用到session功能,所以修改app目录下的中间件文件middleware.php,将\think\middleware\SessionInit::class的注释放开即可。好,到这里基本上验证码就完全可以正常显示了,还是不可以就看下有没有报错或者gd库这些有没有正确安装,现在我们看一下如何进行验证码的验证,其实也很简单直接使用内置的验证即可。到这一步,可能会无法显示验证码。原创 2023-02-10 17:42:21 · 2049 阅读 · 0 评论 -
tp如何引用第三方类vendor或extend?
我们在extend目录下面新增一个ext目录,然后定义一个\ext\Test类( 类文件位于extend/ext/Test.php),切记:哪怕只有一个PHP文件,也不可直接放extend目录里,一定要新建目录!但是有一点需要注意,命名空间的命名是必须要根据目录结构来命名的不是瞎写的,否则你调用这个类的时候就会报错找不到,这也是为何一开始说就算只有一个PHP文件也要在extend下新建目录放进去不能直接放extend里的原因。同样,如果想引入vendor下的文件下的数组,只需要改一下名称就可以了;原创 2023-01-22 10:12:25 · 4315 阅读 · 1 评论 -
如何使用file_get_contents实现发送GET、POST请求
post请求跟get请求很是类似,只是多了两个参数,第二个参数固定为false,第三个参数就是我们要post的数据和header头之类的数据,这比curl要方便很多吧,在某些特殊场景用不了公共函数的时候,这个方法确实是个不错的选择就没有必要用curl了。$data = array( 'name'=>'李白','phone'=>'13000000000');//get请求params参数数组。$data = array('name'=>'李白','phone'=>'13000000000');原创 2023-01-22 08:51:20 · 1543 阅读 · 0 评论 -
如何正确选择适合的mysql数据类型?
然后gbk这个就不说了,十几年前用的挺多现在基本都是utf8了,区别是utf8属于国际化的,gbk只能国内😂。时间类型,根据需求来选择,存储时间不建议用时间戳,因为一旦程序崩溃无法进入后台后,只能进入数据库查看异常,全是时间戳无法更好的排查数据,建议使用上述时间类型的字段,只存储年份就用year,只存储年月日的就用date,只存储时间的用time,存储完整年月日时间的用date time,至于timestamp不建议使用了因为它的存储极限就是2038年1月9号之后就无法正常存储使用了。原创 2023-01-10 15:13:41 · 331 阅读 · 0 评论 -
如何合理设计MySQL表?
如果没有特殊的理由, 一般都建议将字段定义为NOT NULL。为什么呢?首先,NOT NULL可以防止出现空指针问题。其次,NULL值存储也需要额外的空间的,它也会导致比较运算更为复杂,使优化器难以优化SQL。NULL值有可能会导致索引失效如果将字段默认设置成一个空字符串或常量值并没有什么不同,且都不会影响到应用逻辑, 那就可以将这个字段设置为NOT NULL。原创 2022-12-19 00:19:45 · 1053 阅读 · 0 评论 -
如何实现Laravel 5.1 分页功能及自定义分页样式
通过查看和paginate两个函数的底层实现,可以发现这两个函数分别返回和,因此,如果我们想要实现自定义分页功能,需要传入自定义参数到这两个类中。当然,很多时候这两个类已经可以满足我们绝大部分需求,更多的改动可能还是在分页样式上,比如我们想要修改链接的显示、以及在分页链接中加上“首页”、“最后一页”这样的链接等。Laravel自带的分页链接样式由的render方法生成,要想自定义分页样式,需要在这些类和方法上做文章。原创 2022-11-20 19:23:38 · 871 阅读 · 0 评论 -
如何实现Thinkphp的日志写入
TP通过配置文件对日志进行设置.要开启日志记录,必须在配置中开启LOG_RECORD参数,以及可以在项目配置文件中配置需要记录的日志级别。当Debug=false时,才会读取config.php的Log配置,即此时config.php配置才会生效.根据TP的define(‘APP_DEBUG’,false)的设置不同,TP会读取不同的配置文件,3>. write写入日志是不受Log配置文件控制的,无论你怎么设置,都会输出写入文件.Tp的日志输出核心类为 TP/Lib/Core/Log.class.php.原创 2022-11-09 16:31:07 · 831 阅读 · 0 评论 -
PHPQrcode生成的二维码如何转换为base64
至此,phpqrcode生成的二维码图片流成功转base64了,直接将$imgInfo值给img标签即可。ob_start();原创 2022-10-19 14:27:05 · 1386 阅读 · 0 评论 -
$_SERVER详细讲解
_SERVER['HTTP_ACCEPT_CHARSET'] //当前请求的 Accept-Charset: 头部的内容。$_SERVER['HTTP_ACCEPT_CHARSET'] //当前请求的 Accept-Charset: 头部的内容。$_SERVER['HTTP_USER_AGENT'] //当前请求的 User_Agent: 头部的内容。$_SERVER['HTTP_USER_AGENT'] //当前请求的 User_Agent: 头部的内容。这在页面需要指向自己时非常有用。原创 2022-10-17 21:51:05 · 452 阅读 · 0 评论 -
yii如何操作数据库
result =Yii::app()->db->createCommand()->delete('table表名',"id=:id",array(':id'=>$id))->execute();Yii::$app->db->createCommand()->insert('table表名',$dataArrsy)->execute();//查询第一行的第一字段。//查询第一列数据。//创建、更新、删除,的执行。四、更新update。五、删除delete。原创 2022-10-07 02:01:06 · 352 阅读 · 0 评论 -
Yii如何抛出异常
throw new \Exception('请登录');原创 2022-10-07 01:59:20 · 163 阅读 · 0 评论 -
如何在TP6 中间件中重定向跳转 BASECONTROLLER(比如做登录判断)
我用tp比较多,在tp控制器的构造函数里面可以直接使用redirect函数进行跳转动作,然而在laravel却不行,这里要提一个东西,那就是中间件,可以很完美的满足我们的需求,当然这篇文章仅供新手参考,大佬勿喷。除了登录控制器其他的需要用户登录控制器都注册这个中间件,也可以在路由中注册中间件。session('user')){//判断用户未登录就跳转至登录页面。首先在app\Middleware目录下新建一个中间件,这里我命名为CheckLogin。//如果已登录则执行正常的请求。原创 2022-09-23 17:03:46 · 1858 阅读 · 2 评论 -
如何实现thinkphp多语言网站
app_begin‘ => array(‘Behavior\CheckLangBehavior‘), //表示在app_begin标签位置执行多语言检测行为。原创 2022-09-23 00:10:01 · 251 阅读 · 0 评论 -
如何实现系统公告或系统消息
系统管理员在后台新建一条系统消息,选择部分用户(用户群组)或所有用户,用户收到消息后,点击阅读,该用户对当前消息的读取状态将变为已读。3、用户消息关系表无记录即为未读,当用户触发阅读后,将用户标识与消息标识关联写入到用户消息关系表(即已读)假设系统中有100万用户量,我们发一条系统消息不可能给每个用户写入一条消息或消息关系记录。2、为每个用户写入消息关系记录(即状态:如未读、已读)1、系统消息需要分发至系统所有用户、或指定群组用户。2、用户对系统消息有未读、已读等状态。1、建立消息表、用户消息关系表。...原创 2022-08-17 15:50:11 · 977 阅读 · 0 评论 -
如何实现消息通知系统
本篇主要明确消息通知系统的概念和具体实现,包括数据库设计、技术方案、逻辑关系分析等。消息通知系统是一个比较复杂的系统,这里主要分析站内消息如何设计和实现。提醒 Remind以上三种消息有各自特点,实现也各不相同,其中「提醒」类通知是最复杂的,下面会详细讲。.........原创 2022-08-17 15:48:42 · 1288 阅读 · 0 评论 -
如何实现私信基本功能或简易即时聊天功能
项目需求:私信功能,实现像对方发送私信消息后,在我的私信列表页面显示与发送或者接受消息的人列表,列表每条记录只显示与该对话的最新的一条消息。INSERT INTO `private_message` VALUES ('3', '127', '121', '127', '121', '1', '你是程序猿吗?INSERT INTO `private_message` VALUES ('4', '121', '127', '127', '121', '1', '你是程序猿吗?这么一来,就可以满足我们的需求了。.原创 2022-08-17 15:25:40 · 938 阅读 · 1 评论 -
如何解决PHP中×tamp变成×tamp问题
之前做的项目有一个返回给前端浏览器重定向的地址,每次×tamp=时间戳都变成×tamp=时间戳,突然懵逼了,接着看异常截图,发现是浏览器中显示的都是×tamp=时间戳这种,查询了后台日志发现都是×tamp=时间戳这种,突然想到是不是浏览器转义的问题,一查果然是。备注:同一个符号,可以用“实体名称”和“实体编号”两种方式引用,“实体名称”的优势在于便于记忆,但不能保证所有的浏览器都能顺利识别它,而“实体编号”则没有这种担忧,但它实在不方便记忆。比如,要显示小于号(...原创 2022-08-16 12:35:27 · 1007 阅读 · 0 评论 -
如何解决tp6控制器不存在:app\controller\Index
requiretopthink/think-multi-app,特别注意安装的时候一定要是在项目的根目录下安装,不然安装了以后也是用不了报单应用(app\controller\index不存在)的问题。如果安装后还是报错,需要配置’auto_multi_app’=>true,不知道是不是版本问题,我下载的这个稳定版本没有设置这个,照样可以访问成功!tp6需要用到多应用模块的时候,并不能像tp5那样直接创建一个模块即可,需要composer安装对应的think-multi-app扩展才能够使用。...原创 2022-07-27 17:44:36 · 1362 阅读 · 0 评论 -
php如何接收并保存base64图片
如果是多图片上传直接foreach循环$image即可;public function base64(){ //接收base64数据 $image= $_POST['image']; //设置图片名称 $imageName = "25220_".date("His",time())."_".rand(1111,9999).'.png'; //判断是否有逗号 如果有就截取后半部分 if (strstr($image原创 2022-07-13 22:41:17 · 1716 阅读 · 0 评论 -
PHP如何提取字符串中的图片地址
有时候我们会有一种需求就是提取商品详情中的图片地址给弄成一个数组,从而实现商城用户一键下载图片,PHP提取字符串中的图片地址,实际就是利用正则表达式匹配图片地址,我们直接看代码...原创 2022-06-24 16:13:10 · 559 阅读 · 0 评论 -
thinkphp如何使用phpexcel导出Excel数据表
1.下载phpexcel类库文件,放在extend下面。2.php首先引入类库:import('phpexcel.PHPExcel',EXTEND_PATH);import('phpexcel.PHPExcel.Worksheet.Drawing',EXTEND_PATH);import('phpexcel.PHPExcel.Writer.Excel2007',EXTEND_PATH); public function daochu(){ $data = "查询出数组"; $原创 2022-06-08 16:21:04 · 620 阅读 · 0 评论 -
thinkphp如何获取当日、当月、当年数据
日期区间查询根据时间戳查询今天到后天Db::table('table')->whereTime('time', 'between', [strtotime(date('Y-m-d')), strtotime(date('Y-m-d', strtotime('+2 day')))])->select();//根据日期区间查询Db::table('table')->whereTime('time', 'between', ['2020-3-28', '2020-3-30'])->select();//表达原创 2022-06-06 21:15:58 · 1894 阅读 · 0 评论 -
PHP $_SERVER如何使用?
$_SERVER['HTTP_ACCEPT_LANGUAGE']//浏览器语言$_SERVER['REMOTE_ADDR'] //当前用户 IP 。$_SERVER['REMOTE_HOST'] //当前用户主机名$_SERVER['REQUEST_URI'] //URL$_SERVER['REMOTE_PORT'] //端口。$_SERVER['SERVER_NAME'] //服务器主机的名称。$_SERVER['PHP_SELF']//正在执行脚本的文件名$_SERVER['argv'] /原创 2022-06-06 17:44:58 · 266 阅读 · 0 评论 -
thinkphp5如何对接使用阿里云短信
目前阿里云短信sdk有两个版本,一个老版本一个新版本就是openAPI,这篇文章讲的就是老版本的对接首先我们下载官方完整包的SDK:https://help.aliyun.com/document_detail/55359.html?spm=5176.doc55451.6.580.3rgXTqPHP版本一定要不低于5.5下载后目录如下:SDK工具包目录结构如下:\_api_demo | \_SmsDemo.php 短信服务相关接口demo示例 \_api_sdk原创 2022-06-04 20:27:18 · 534 阅读 · 0 评论 -
如何使用ThinkPHP生成二维码?
一、下载phpqrcode扩展库官方下载地址:https://sourceforge.net/projects/phpqrcode/files/二、使用phpqrcode扩展库解压后得到把phpqrcode文件夹,为了方便调用,我们可以修改文件夹内phpqrcode.php这个文件名,修改成“QRcode.php”,然后添加命名空间phpqrcode,把phpqrcode文件夹放到extend扩展目录,在代码内调用: 代码示例:原创 2022-06-02 16:05:58 · 1352 阅读 · 0 评论 -
thinkphp如何解决include模板标签缓存问题,动态改变不生效
先看问题代码{include file="$file" active="$index" data="$data"/}引入动态file active为当前激活的tab data为模板数据 然后模板file内使用data变量,这个时候就会出现一个问题,一旦这个file 或者 data变量发生了改变 是不会再次重新渲染页面和数据,这样这个变量的作用形同虚设啊,这个官方的坑很大啊接下来就说一下如何跳坑 其实很简单 直接写原生代码来代替{include file="<?php echo $fil原创 2022-05-28 02:22:29 · 550 阅读 · 0 评论 -
API接口token 过期后,如何自动续期?
JWT token的 payload 部分是一个json串,是要传递数据的一组声明,这些声明被JWT标准称为claims。JWT标准里面定义的标准claim包括: iss(Issuser):JWT的签发主体; sub(Subject):JWT的所有者; aud(Audience):JWT的接收对象; exp(Expiration time):JWT的过期时间; nbf(Not Before):JWT的生效开始时间; iat(Issued at):J原创 2022-05-21 01:33:36 · 1061 阅读 · 0 评论 -
PHP代码中的冒泡排序代码如何写
众所周知冒泡排序是我们高一就要开始学习并掌握的基础算法之一 也是大名鼎鼎的十大排序算法之一 那么在PHP中我们该如何把他的代码写出来呢,假设要排序的数组为array教科书式版本 for($i=0;$i<count($array)-1;$i++){//控制比较轮次,一共 n-1 趟 for($j=0;$j<count(array)-1-$i;$j++){//控制两个挨着的元素进行比较 if($array[j] > $array[j+1]){...原创 2022-05-20 13:58:02 · 253 阅读 · 0 评论 -
如何在排序后使用分组拿到我们想要的数据?
开发过程中我们会遇到这样一个问题 比如班级里每个学生一年内每次考试的成绩都在一个表里 现在需要得到每个学生一年内的最高分 可能大家会想到先排序然后分组 但是实际操作会发现排序不生效 原因在与分组的优先级大于排序的优先 分组完之后就一个数据 排序自然而然就没效果了 那么该怎么做 才能拿到我们想要的结果呢?答案是先排序再分组再排序 看例子 $where = [['note_content_tag', '<>', '']]; //调用 buildSql 方法后不会进行...原创 2022-05-20 03:07:31 · 176 阅读 · 0 评论 -
php中import require include use等使用方法
一.use 调用命名空间用法. use app\common\controller\Index as commonIndex 或use app\common\controller\Index ;二. require和include1.使用方法require_once '../application/common/filter.php';include APP_PATH.'common/filter.php';2.include()与require()的区别include...原创 2022-05-10 15:23:47 · 541 阅读 · 0 评论