我的编程空间,编程开发者的网络收藏夹
学习永远不晚

tp6框架升级支持php8

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

tp6框架升级支持php8

tp6框架升级:使用cmd切换至tp项目后运行以下命令

composer update

php升级到8后,tp6框架中生成验证码报错 Implicit conversion from float 153.60000000000002 to int loses precision
在这里插入图片描述
解决方法:
进入vendor/topthink/think-captcha/class="lazy" data-src/Captcha.php找到writeCurve()方法,
将$px2 = mt_rand($this->imageW / 2, $this->imageW * 0.8);改为 $px2 = mt_rand(intval($this->imageW / 2), intval($this->imageW * 0.8));

protected function writeCurve(): void    {        $px = $py = 0;        // 曲线前部分        $A = mt_rand(1, $this->imageH / 2); // 振幅        $b = mt_rand(intval(-$this->imageH / 4), intval($this->imageH / 4)); // Y轴方向偏移量        $f = mt_rand(intval(-$this->imageH / 4), intval($this->imageH / 4)); // X轴方向偏移量        $T = mt_rand($this->imageH, $this->imageW * 2); // 周期        $w = (2 * M_PI) / $T;        $px1 = 0; // 曲线横坐标起始位置        $px2 = mt_rand(intval($this->imageW / 2), intval($this->imageW * 0.8)); // 曲线横坐标结束位置        for ($px = $px1; $px <= $px2; $px = $px + 1) {            if (0 != $w) {                $py = $A * sin($w * $px + $f) + $b + $this->imageH / 2; // y = Asin(ωx+φ) + b                $i  = (int) ($this->fontSize / 5);                while ($i > 0) {                    imagesetpixel($this->im, intval($px + $i), intval($py + $i), $this->color); // 这里(while)循环画像素点比imagettftext和imagestring用字体大小一次画出(不用这while循环)性能要好很多                    $i--;                }            }        }        // 曲线后部分        $A   = mt_rand(1, $this->imageH / 2); // 振幅        $f   = mt_rand(intval(-$this->imageH / 4), intval($this->imageH / 4)); // X轴方向偏移量        $T   = mt_rand($this->imageH, $this->imageW * 2); // 周期        $w   = (2 * M_PI) / $T;        $b   = $py - $A * sin($w * $px + $f) - $this->imageH / 2;        $px1 = $px2;        $px2 = $this->imageW;        for ($px = $px1; $px <= $px2; $px = $px + 1) {            if (0 != $w) {                $py = $A * sin($w * $px + $f) + $b + $this->imageH / 2; // y = Asin(ωx+φ) + b                $i  = (int) ($this->fontSize / 5);                while ($i > 0) {                    imagesetpixel($this->im, intval($px + $i), intval($py + $i), $this->color);                    $i--;                }            }        }    }

来源地址:https://blog.csdn.net/admin_web/article/details/127549313

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

tp6框架升级支持php8

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

哪个框架支持php8

支持php8的框架有Laravel、Symfony、CodeIgniter、Yii等等框架。详细介绍:1、Laravel框架,Laravel8是Laravel框架的最新版本,完全支持PHP8;2、Symfony框架,Symfony 5.2是
2023-10-22

golang框架开源社区和支持

go 语言生态系统拥有丰富的开源框架社区,为 web 开发、数据处理和机器学习等任务提供支持。这些框架包括:web 框架:echo、gin、fiberorm 框架:gorm、xorm、gorilla mux数据处理框架:pandas、num
golang框架开源社区和支持
2024-05-24

升级Win8.1点击Setup.exe提示不支持此升级路径

热衷于新系统的用户,在看到Win8出现新版本之后,便会迫不及待的想升级为Win8.1.但有些用户在升级时遇到了困难。点击Setup.exe进行升级安装失败了还出现“不支持此升级路径”的错误提示。这一般是由于系统安装文
2022-06-04

MySQL ORM框架的社区支持如何

MySQL ORM框架的社区支持通常取决于具体的框架和它的活跃度。以下是一些流行的MySQL ORM框架及其社区支持的概述:Django ORM:Django自带一个强大的ORM系统,它完全集成在Django框架中。由于Django是一个非
MySQL ORM框架的社区支持如何
2024-10-05

探讨uni-app是否支持react框架

在过去的几年中,移动应用程序开发一直是不断发展和改变的领域。有许多技术和框架,使得开发人员可以更容易地构建多平台应用程序。其中一种流行的框架是uni-app,它提供了一个基于vue.js的开发框架,可以用于构建跨平台应用程序。在这篇文章中,我们将探讨uni-app是否支持react框架。首先,让我们简单介绍一下uni-app。uni-app是一种基于vue.js的跨平台开发框架
2023-05-14

ORM框架对MySQL的JSON字段支持

ORM(Object-Relational Mapping,对象关系映射)框架是一种在关系型数据库和对象式编程之间进行数据转换的技术。许多现代ORM框架,如Django ORM、SQLAlchemy、Hibernate等,都支持MySQL的
ORM框架对MySQL的JSON字段支持
2024-10-05

MySQL ORM框架的异步查询支持

MySQL ORM框架中的异步查询支持允许开发者在执行数据库操作时不必等待查询完成,可以继续执行其他任务。这种支持对于提高应用程序的性能和响应能力非常有用,特别是在处理大量并发请求或需要快速响应用户输入的场景中。不同的MySQL ORM框
MySQL ORM框架的异步查询支持
2024-10-05

ORM框架对MySQL的空间索引支持

ORM(Object-Relational Mapping,对象关系映射)框架是一种在面向对象编程语言中实现数据库操作的方法。它允许开发者使用面向对象的方式来操作数据库,而不是直接编写SQL语句。ORM框架通常提供了对数据库的各种高级功能的
ORM框架对MySQL的空间索引支持
2024-10-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录