首页
统计
留言
Search
1
PHP中使用反射
995 阅读
2
phpstorm配置SFTP
938 阅读
3
Go语言——结构体
792 阅读
4
PhpStorm 使用 AI 代码生成工具 Codeium
778 阅读
5
关于PHP的垃圾回收机制
762 阅读
后端
PHP
Go
数据库
其他
前端
其他技术
生活杂谈
登录
Search
标签搜索
Laravel
Mysql
RPC
Redis
Liunx
PHP
CSS
ES
算法
开发工具
断点续传
反射
phpstorm
工具
防盗链
CURL
设计模式
面试
Nginx
搜索引擎
quhe.net
首页
栏目
后端
PHP
Go
数据库
其他
前端
其他技术
生活杂谈
页面
统计
留言
搜索到
10
篇与
其他技术
的结果
2023-02-14
宝塔无法删除swap虚拟内存的问题
之前用宝塔设置了swap虚拟内存,现在不需要了(因为swap没有物理内存快),但是直接在宝塔的Liunx工具箱里无法删除。故作此记录删除Swap步骤1、查看Swap文件swapon -s2、关闭Swap文件swapoff /etc/swapfile3、rm命令删除刚才Swap盘rm -rf /etc/swapfile4、检查swap是否被删除swapon -s free -h
2023年02月14日
131 阅读
0 评论
0 点赞
2023-01-10
Typecho 文章页面自定义可编辑字段插件
关于市面上很多主题和插件会为文章或者页面新增一些额外的数据库字段,但是typecho并没有为这些字段提供手动编辑的地方。比如joe主题就会新增浏览量和点赞数这两个属性。但是typecho后台文章页面编辑页并没有这两个字段的编辑框,导致不能手动更新这两个字段,所以本插件应运而生。具体包含以下功能页面自定义字段编辑文章自定义字段编辑安装请前往github下载插件地址:https://github.com/qingfeng1024/CustomContentField将文件夹重命名为CustomContentField,然后拷贝至usr/plugins/下,最后在后台->插件处安装。演示 (给joe主题添加文章阅读量和点赞数可编辑功能)设置自定义字段 新增或者编辑文章 升级方法下载最新文件,全部覆盖即可(请先禁用插件后再升级)
2023年01月10日
276 阅读
0 评论
23 点赞
2022-10-09
PHP实现模拟双色球选号和开奖
平时偶尔也会买买彩票玩,但是感觉真的很少很少概率才会中奖,于是今天突发奇想,自己写个在线模拟双色球开奖和选号的程序,模拟一下中奖几率,以及过过干瘾,哈哈。废话不多说,直接上代码<?php class DoubleColorBall { private $maxWinningAmount = 0; // 记录中奖最大金额 private $maxWinningNumber; // 记录中奖最大号码 // 生成指定数量的随机号码 public function generateRandomNumbers($count) { $numbers = []; for ($i = 0; $i < $count; $i++) { $redBalls = []; // 随机生成6个不重复的红球号码(1-33) while (count($redBalls) < 6) { $ball = mt_rand(1, 33); if (!in_array($ball, $redBalls)) { $redBalls[] = $ball; } } sort($redBalls); // 对红球号码进行排序 $blueBall = mt_rand(1, 16); // 随机生成一个蓝球号码(1-16) $numbers[] = array( 'redBalls' => $redBalls, 'blueBall' => $blueBall ); } return $numbers; } // 计算购买成本 public function calculateCost($numbers, $pricePerTicket) { $count = count($numbers); $cost = $count * $pricePerTicket; return $cost; } // 检查指定号码是否中奖,并返回中奖金额 public function checkWinning($selectedNumber, $winningNumber) { $selectedRedBalls = $selectedNumber['redBalls']; $selectedBlueBall = $selectedNumber['blueBall']; $winningRedBalls = $winningNumber['redBalls']; $winningBlueBall = $winningNumber['blueBall']; $matchedRedBalls = array_intersect($selectedRedBalls, $winningRedBalls); $matchedRedCount = count($matchedRedBalls); $matchedBlueBall = ($selectedBlueBall == $winningBlueBall); if ($matchedRedCount == 6 && $matchedBlueBall) { return 10000000; } elseif ($matchedRedCount == 6) { return 500000; } elseif ($matchedRedCount == 5 && $matchedBlueBall) { return 3000; } elseif ($matchedRedCount == 5 || ($matchedRedCount == 4 && $matchedBlueBall)) { return 200; } elseif ($matchedRedCount == 4 || ($matchedRedCount == 3 && $matchedBlueBall)) { return 10; } elseif ($matchedBlueBall) { return 5; } else { return 0; } } // 计算中奖金额 public function calculateWinnings($numbers, $winningNumber) { $totalWinnings = 0; foreach ($numbers as $number) { $winnings = $this->checkWinning($number, $winningNumber); if ($winnings > $this->maxWinningAmount) { $this->maxWinningAmount = $winnings; $this->maxWinningNumber = $number; } $totalWinnings += $winnings; } return $totalWinnings; } // 获取中奖最大号码 public function getMaxWinningNumber() { return $this->maxWinningNumber; } // 获取中奖最大金额 public function getMaxWinningAmount() { return $this->maxWinningAmount; } // 生成开奖号码 public function generateWinningNumber() { $redBalls = []; // 随机生成6个不重复的红球号码(1-33) while (count($redBalls) < 6) { $ball = mt_rand(1, 33); if (!in_array($ball, $redBalls)) { $redBalls[] = $ball; } } sort($redBalls); // 对红球号码进行排序 $blueBall = mt_rand(1, 16); // 随机生成一个蓝球号码(1-16) return array( 'redBalls' => $redBalls, 'blueBall' => $blueBall ); } } // 示例用法 $lottery = new DoubleColorBall(); $numberOfTickets = 100000; // 指定购买的号码数量 $pricePerTicket = 2; // 每张彩票的价格 $selectedNumbers = $lottery->generateRandomNumbers($numberOfTickets); $winningNumber = $lottery->generateWinningNumber(); $totalCost = $lottery->calculateCost($selectedNumbers, $pricePerTicket); $totalWinnings = $lottery->calculateWinnings($selectedNumbers, $winningNumber); $profit = $totalWinnings - $totalCost; $maxWinningNumber = $lottery->getMaxWinningNumber(); $maxWinningAmount = $lottery->getMaxWinningAmount(); echo "开奖号码是:" . json_encode($winningNumber) . "\n"; echo "您购买了" . $numberOfTickets . "张彩票,总成本为:" . $totalCost . "元\n"; echo "中奖金额为:" . $totalWinnings . "元\n"; echo "利润为:" . $profit . "元\n"; echo "中奖最大的一注号码是:" . implode(",", $maxWinningNumber['redBalls']) . ",蓝球号码是:" . $maxWinningNumber['blueBall'] . "\n"; echo "中奖最大金额为:" . $maxWinningAmount . "元\n"; ?>这里我模拟购买了10万张彩票(真买的话要20万元,哈哈哈),下面是运行结果:
2022年10月09日
83 阅读
0 评论
3 点赞
2022-04-22
PhpStorm 使用 AI 代码生成工具 Codeium
什么是Codeium?Codeium是现代编码超级大国,是基于尖端人工智能技术构建的代码加速工具包。目前,Codeium有两个主要功能:自动补全(Autocomplete),它会提示您想要输入的代码,为您节省从样板文件到单元测试的所有时间;搜索(Search),它可以帮助您使用自然语言问题搜索存储库。通过与编辑器的轻松集成,我们希望您专注于成为最好的软件开发人员,而不是最好的代码猴子。支持什么编程语言?Codeium 的性能很好(默认启用)以下语言(按字母顺序):Assembly, C, c++, c#, Clojure, CMake, CoffeeScript, CSS, CUDA, Dart, Delphi, Dockerfile, Elixir, f#, Go, Groovy, Haskell, HCL, HTML, Java, JavaScript, Julia, JSON, Kotlin, LISP, Less, Lua, Makefile, MATLAB, Objective-C, pbtxt, PHP, Protobuf, Python, Perl, Powershell, R, Ruby, Rust, Sass, Scala, SCSS, shell, Solidity, SQL, Starlark, Swift, Typescript, TSX, VBA, Vue, YAML。在任何其他语言上,都可以显式地启用Codeium。免费吗?对于个人开发者来说,是的。我们的理念是,每个开发人员都应该能够使用这些工具,以保持竞争环境的公平性。话虽如此,如果你对我们的最终盈利计划感到好奇,可以在General部分查看相关问题。支持什么编辑器?根据官网介绍,常用的编辑器基本都支持:PHPStorm安装使用步骤和安装普通插件一样,直接在插件安装那里搜索:Codeium ,然后安装重启ide就行。使用教程 <摘自Codeium官网示例>1、设置尽管 Codeium 支持多种语言,我们会在 PyCharm 中使用 Python 来演示其示例。在 PyCharm 中创建一个名为 test.py 的新 Python 文件。2、源代码中获取Codeium 可以基于你写的代码片段来建议多行代码!试试以下简单的头部:python复制代码def fib(n):Codeium 应该会生成一整个灰色文本的函数体,在此为获取第 N 个斐波那契数而工作!注意:你可能会得到稍微不同的结果,这是由于模型不断改进和采样以增加生成代码的多样性造成的。3、接受建议如果你喜欢这个建议,只需按下 Tab 就可以接受。4、从注释中获取Codeium 还可以理解注释,使你能够仅凭所需功能的描述就能获得代码!让我们尝试之前的示例,但改为仅写注释和 def,即 Python 函数的关键字:python复制代码# 获取第 N 个斐波那契数 defCodeium 应该会生成不只是函数体如之前那样,而且还会产生函数头!5、备选建议尽管 Codeium 经常能在第一次尝试时产生好的代码,但在有多种潜在方法的情况下,切换选项可能很有帮助。例如,Codeium 可能会产生以下实现以逆时针方式围绕原点旋转给定角度的点:棒极了!这个方案可行,但也可能你不想自己做度数转换。你可以使用 ⌥ + ] 和 ⌥ + [(在 MacOSX 上)或 Alt + ] 和 Alt + [(在 Windows / Linux 上)来在多个备选建议选项之间切换。在此示例中,查看下一个选项会得到一个包含使用 math 库执行度到弧度转换的代码片段。注意:如果快捷键未更改建议,则这是因为 Codeium 认为只有一个高概率选项或所有顶部选项足够相似,可以将它们合并为单个选项。关于Windews/Ubuntu的IDEA上Codeium:Failed to download Language service出现此类问题大概率是因为网络原因造成的。由于是国外开发的,应该需要魔法才可以,但是我开了魔法也不好使,不过也可以通过其他方式来解决。不同的操作系统之间的解决方法类似,下面以Windows操作系统为例:解决方法就是将自己下载好的语言服务文件放到IDEA安装Codeium插件的文件夹中:1、首先关闭IDEA编译器2、从下面地址中下载符合你的操作系统的文件,可自行选择版本号(最好选择和自己插件一致的版本-感谢评论区的提示),gz文件下载后要解压出exe文件。GitHub链接 3、下载完成后,找到如下文件夹(自己IDEA的版本号),:C:\Users\{自己电脑的账号}\AppData\Roaming\JetBrains\IntelliJIdea2023.1\plugins\codeium 将下载好的exe可执行文件保存到下方红圈的文件夹中,再打开IDEA,你就会发现Codeium可以正常使用啦。(如果还是不行的话可以尝试禁用插件,然后再启用)Ubuntu上的解决方法来了:前两步与Windows操作系统 将下载后的文件放到以下目录中:.local文件夹需要打开隐藏文件才能显示:下载的文件放到对应文件夹后,再打开IDEA,你就会发现Codeium可以正常使用啦。(如果还是不行的话可以尝试禁用插件,然后再启用,我就是通过这种方式解决的)Mac版本就不更新了,因为买不起!!!不过原理类似,只要找到IDEA安装插件的目录后面就简单啦。
2022年04月22日
778 阅读
0 评论
2 点赞
2022-03-12
记一次服务器数据迁移过程
前言最近需要迁移服务器,服务器上不止一个网站,并且数据也挺大,光数据库就有共差不多10个G,所以如何高效率传输数据就成了问题,最后经过差不多一整天的折腾,最后终于全部迁移完成。下面我将数据迁移过程拆分为:数据库、网站源码、静态资源数据 三部分做记录。数据库如果数据量不大的话,迁移还挺简单,可以直接利用Navicat的[工具->数据传输]功能完成,简单方便。但是我的数据有快10个G,我用Navicat的传输工具时,出现了不可预知的错误,导致迁移失败,所以最后利用了宝塔的备份和 导入 功能完成迁移。但是这里还有个更大的问题,就是数据库备份后的备份文件大小有好几个G,如何将这个大文件从源服务器传到目标服务器又成了问题,我又试了SCP和FTP传输,这两种传输方式都失败了,SCP传送到一半的时候自己中断了,FTP传输也是一样。最后采用了宝塔的自带文件分享和文件从URL下载功能,才完成迁移。真是一波三折~源码源码的话,直接在源服务器上压缩一份文件,然后通过宝塔的自带文件分享功能迁移到目标服务器,然后通过git clone 仓库里的源码(克隆到单独一个文件价,然后粘贴覆盖迁移的文件),再整合一下即可。资源文件还是采用宝塔的文件分享功能。其他PHP部署:安装拓展:fileinfo、opcache、memcached删除禁用函数:putenv、proc_open
2022年03月12日
60 阅读
0 评论
0 点赞
1
2