其他教程
模板兔提供一些网站建设相关的教程,让大家迅速的做好一个网站。
模板兔最近在基于chatgpt开发对话列表时,遇到这样一个问题:mysql的数据表结构有id,create_time,update_time,如何基于create_time倒序查询列表时,同时查出哪条记录的update_time最大。
经过一番查阅,可以使用子查询和ORDER BY语句来实现同时查询出update_time最大的记录。
具体的SQL语句如下:
SELECT
t1.id,
t1.create_time,
t1.update_time
FROM
table_name t1
JOIN (
SELECT
MAX(update_time) AS max_update_time
FROM
table_name
) t2
ON t1.update_time = t2.max_update_time
ORDER BY
t1.create_time DESC;
解释一下上面的SQL语句:
首先,我们查询出table_...
你可以使用 event.stopPropagation() 方法来阻止事件冒泡,从而避免下层元素的点击事件被触发。例如,假设你有一个父元素和一个子元素,你可以在子元素的点击事件处理函数中调用 event.stopPropagation() 方法:
document.querySelector('#child').addEventListener('click', function(event) {
event.stopPropagation();
// 处理子元素的点击事件
});
document.querySelector('#parent').addEventListener('click', function(event) {
// 处理父元素的点击事件
});
在上面的代码中,当你点击子元素时,子元素的点击事件处理函数会被触发,但是父元素的点击事件处理函数不会被触发,因为 event.stopPropagation() 方法阻止...
以下是模板兔用php写的请求chatgpt3.5 非流输出模式(不是打字特效)的代码示例,这种非流模式一般用于批量生产文章。通过chatgpt你可以大量生产伪原创文章,提供网站收录。近期我们会增加一个wordpress通过GPT批量发布文章的功能(通过关键字批量生成标题然后再批量提问,或者导入标题列表然后批量向chatgpt提问)。
$header = array(
'Accept: application/json',
'Authorization: Bearer '.$API_KEY,
'Content-type: application/json',
);
$postData = [
"model" => "gpt-3.5-turbo",
'max_tokens' => ERPHP_API_TOKENS,
'temperature' => 0.9,
"stream" => false,
"messages" => [],
];
$postData['messag...
最近给客户用thinkphp开发gpt时遇到一个问题就是浏览器会提示这样一个错误:EventSource's response has a MIME type ("text/html") that is not "text/event-stream". 可是明明PHP已经申明了header("Content-Type: text/event-stream"); 折腾了一会终于解决,原来thinkphp使用了数据缓冲来输出内容,这会导致有些响应格式没有生效,所以在上面的PHP代码中添加ob_end_clean();可以解决问题。
if (ob_get_level() > 0) {
// 如果有缓冲区,则清空缓冲区
ob_end_clean();
}
header("Content-Type: text/event-stream");
header('X-Accel-Buffering: no');
最近模板兔在给客户开发chatgpt相关功能,遇到一个问题就是在输出[DONE]后我在js里却获取不到内容,百思不得其解呀,这个问题困扰了许久。后来才发现,虽然输出done是表示接口获取完成了,但是在网页端由于是流加载,这边又是通过流加载时动态赋值,所以输出了[DONE]但是流加载还在继续,所以导致获取不到内容。
解决方法就是在流加载里判断是否加载完了(也就是打字特效是否打完了所有结果),然后再去获取整个内容。
下面是我问GPT后给出的回答,感觉对我没有任何意义,不知道对你们的开发是否有作用呢?
当ChatGPT输出[DONE]时,您可以调用一个回调函数来获取整个内容。
以下是一个示例代码:
function getChatGPTOutput(call...
这段代码会在页面上创建一个全屏的弹幕容器,然后定义了一个弹幕类和一个弹幕管理类。弹幕类用于创建单个弹幕,弹幕管理类用于管理多个弹幕的滚动。在页面加载完成后,我们可以通过调用弹幕管理器的addDanmu方法来添加弹幕,然后调用start方法开始弹幕滚动。弹幕滚动的实现是通过定时器不断更新每个弹幕的位置,并判断弹幕是否超出屏幕,如果超出则从弹幕容器中移除。
HTML:
<div id="danmu"></div>
CSS:
#danmu {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
overflow: hidden;
}
JS:
// 定义弹幕类
class Danmu {
constructor(text, color) {
this.text = text;
...
最近给一个客户二次开发thinkphp,关于chatgpt功能的,其中需要查询5分钟以内的数据,那么如何查询呢?使用whereTime('create_time','-5 minutes')。
$openid = Db::table('mp')->where('scene_id',$scene_id)->whereTime('create_time','-5 minutes')->value('openid');
下面是其他日期时间的一些查询语句,供大家参考。
一、使用where方法进行时间的比较查询
where(‘create_time’,’> time’,’2019-1-1′); // 大于某个时间
where(‘create_time’,'<= time’,’2019-1-1′); // 小于某个时间
where(‘create_time’,’between time’,[‘2018-1-1′,’2019-1-1’]); // 时间区间查询
二、使用whereTime方法
whereTime(‘...
以下是一个简单的用JavaScript实现滚动新闻的例子:
HTML代码:
<div id="news-container">
<ul id="news-list">
<li>这是第一条新闻</li>
<li>这是第二条新闻</li>
<li>这是第三条新闻</li>
<li>这是第四条新闻</li>
<li>这是第五条新闻</li>
</ul>
</div>
CSS代码:
#news-container {
height: 100px;
overflow: hidden;
}
#news-list {
margin: 0;
padding: 0;
list-style: none;
position: relative;
animation: scroll 10s linear infinite;
}
#news-list li {
display: block;
padding: 10px;
}
@keyframes s...
html代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Ajax+PHP实现异步上传多张图片</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.js"></script>
<style type="text/css">
#feedback{
min-height: 200px;
text-align: center;
border: 1px solid silver;
border-radius: 3px;
}
#feedback img{
margin:3px...
模板兔在给客户开发一个网站的过程中,发现一个现象就是几乎所有的wordpress七牛插件都是走媒体库中转上传的,那么在上传大文件的时候就有可能卡死。那么如何实现文件直传到七牛呢?
首先,下载官方SDK,github.com/qiniu/php-sdk 官方文档 developer.qiniu.com/kodo/sdk/php
前端index.html
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<table>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="image">
<input type="submit" value="上传">
</form>
</table>
<...
有时候我们在制作前端页面是需要讲图片显示成正方形,方便排版。可以使用以下CSS代码:
.grids2 .grid2{float: left;width: calc(16.6666% - 20px);overflow: hidden;}
.grids2 .grid2 a{width: 100%;height: 0;position: relative;padding-bottom: 100%;display: block;}
.grids2 .grid2 a img{width: 100%;height: 100%;position: absolute;}
其中a标签包裹着图片img标签,然后主要就是看a与img的CSS。
模板兔经常会收到用户问怎么弄企业邮箱,这里就给大家介绍下几个免费的企业邮箱。
腾讯免费企业邮箱
申请网址:exmail.qq.com/onlinesell/intro
邮箱容量:1G
业务邮箱:3个,每个1G容量
zoho免费企业邮箱
作为一家美国公司,CEO为印度人,印度人的计算机能力世界还是比较闻名的,几乎和中国美食一样了,一步步申请中,也感受到了印度人那种精致的精神,邮箱申请下来后,使用体验还是非常不错的,如果是外贸初创公司或SOHO的人员,建议都可以用zolo免费企业邮箱。
申请网址:www.zoho.com/mail
网易163免费企业邮箱
申请网址:ym.163.com
这里推荐用腾讯的吧,毕竟大家比较常用QQ
最近接到客户反馈,网站已经在多个方面上做好了源站IP保密工作,并且在接入高防cdn之后源站服务器仍然遭受到多次ddos攻击,通过多方面排查基本确定泄露网站源站服务器IP的原因是因为ssl证书。
市面上很多工具爬虫24小时不停的抓取扫描IP,这类的工具网站通过无差别HTTP/HTTPS请求所有的IP,并将抓取到的IP地址所对应的网站记录到网站,以至于有些攻击者可以通过这类的网站可以直接查询到网站源站IP,因此我们在搭建网站的时候一定要做好屏蔽安全工作。
排查是否属于上述问题:通过https://你的源站IP,如果可以访问并且浏览器左上角锁的标志中显示了你的域名ssl证书那么就存在泄露的风险。
最近接到客户反馈,网站已经在多个方面上做...
思路:小程序登录获取到openId后通过微信的回调地址传参、再走微信公众号的通过code获取openId授权。
获取小程序openId并传入H5
1、小程序openId通过webView地址传参
2、判断环境
3、公众号跳转判断
比如我们直接访问/aaa.mp4路径时是直接播放视频,如果加了一个参数download=1(也就是直接访问/aaa.mp4?download=1)就是直接下载视频。
可以在宝塔里设置站点的配置文件,加上以下代码
location ~ .*\.(mp3|wma|mp4|swf|txt)$
{
if ( $query_string ~ "download=1$" )
{
charset utf-8,gbk;
add_header Content-Disposition "attachment; filename*=$arg_n";
}
}