使用 PuTTY 通过 SSH 访问出现错误:”expected key exchange group packet from server”。
解决:
在 PuTTY 的左侧窗格中,导航到“连接” > SSH > Kex。
在算法选择策略下,选择 “Diffie-Hellman group exchange”。
单击向下。此操作会将“Diffie-Hellman group exchange”移出第一个位置,以更改所用的算法。
单击“打开”。
徐多蔚亲测有效。

联系方式[微信]:徐多蔚15309695130 感恩有您的陪伴,我们用心服务每一位客户 – 徐多蔚 xuduowei
使用 PuTTY 通过 SSH 访问出现错误:”expected key exchange group packet from server”。
解决:
在 PuTTY 的左侧窗格中,导航到“连接” > SSH > Kex。
在算法选择策略下,选择 “Diffie-Hellman group exchange”。
单击向下。此操作会将“Diffie-Hellman group exchange”移出第一个位置,以更改所用的算法。
单击“打开”。
徐多蔚亲测有效。
php rmdir()函数用于删除目录,但是在使用这个函数删除目录之前,我们必须要做一些判断,首先要判断目录是否为空,其次要判断目录是否存在,具体请看下面描述。
php rmdir()函数用于删除目录,但在使用这个函数时,我们需要注意两点:
因此,正确使用rmdir()函数删除目录的源代码如下:
检查目录是否为空,如果不为空,删除目录中的文件,如果目录中有子目录,还需要删除子目录。
<?php
// 说明: 删除非空目录的解决方案
function removeDir($dirName)
{
if(! is_dir($dirName))
{
return false;
}
$handle = @opendir($dirName);
while(($file = @readdir($handle)) !== false)
{
if($file != '.' && $file != '..')
{
$dir = $dirName . '/' . $file;
is_dir($dir) ? removeDir($dir) : @unlink($dir);
}
}
closedir($handle);
return rmdir($dirName) ;
}
?>
我的解决方案:因为我是bt宝塔集成环境,我直接用的宝塔给我自动分配的 宝塔ssl【提示:先在宝塔ssl切换按钮中申请成功后部署】 Let’s Encrypt
提示:部署好后,没有重新启动服务器。
网上解决方案:
问题:本地调试request能正常访问https,真机调试预览的时候无法获取数据,提示:request:fail ssl hand shake error
解决方法:
证书是申请的腾讯云免费的, ssl证书配置需要使用pem,不使用crt, 之前一直不行,后来配置修改成 pem就好了
# ssl_certificate /etc/ssl/xxx.crt;
ssl_certificate /etc/ssl/xxx.pem;
pem 可以通过crt+key在线合成:https://www.myssl.cn/tools/merge-pem-cert.html
原因分析:
1、上线前必须修改调用的url为https
有可能你上线前没有修改本地调试http路径为真实https路径。
提示:一般本地调试可以用http,但是一定要在本地开发环境,项目设置中勾选不验证域名。上线必须用https。
2、报错提示说请求的url不在域名列表里,应该是还没有配置服务器域名
操作方法是到小程序后台:开发-》开发设置-》服务器域名:
| request合法域名 |
|
||
| socket合法域名 |
|
||
| uploadFile合法域名 |
|
||
| downloadFile合法域名 |
|
iframe通过下列代码可以实现去除边框,滚动条,但是需要调整好高度,而且对应的子页面,高度应该是固定的,才容易使用。
<iframe src="http://www.xuduowei.html" style="width:100%;height:1100px" name="iframe_a" frameborder="no" border="0" marginwidth="0" marginheight="0" scrolling="no" allowtransparency="yes"></iframe>
微信开发者工具能正常发送请求,在真机调试的时候发送请求报错:request:fail url not in domain list ,请问是什么原因呢?
开发环境下:
设置-》项目设置-》开发环境下不请求域名【勾上】
SUBSTRING_INDEX([列名],[分割符],[段数])
列名:要分割列里内容的列名
分割符:用来切割的符号
段数:切割后取的长度
select showids,SUBSTRING_INDEX(showids,',',-1) as x from cbd_products
order by x asc
select showids from cbd_products order by (SUBSTRING_INDEX(showids,',',-1)+0) asc
mysql特性(+0会自动转化为数字),作数值的大小比较!
tp5中的应用: $list=$obj->db->where($tj)->order("(SUBSTRING_INDEX(showids,',',-1)+0) asc,id desc")->select();
参考url:https://www.cnblogs.com/cuiyf/p/10077707.html
其他:mysql的查询中怎么截取字符串:
从左开始截取字符串left(str, length);
从右开始截取字符串right(str, length);
截取字符串substring(str, pos, length),说明:substring(被截取字段,从第几位开始截取,截取长度);
按关键字截取字符串substring_index(str,delim,count),说明:substring_index(被截取字段,关键字,关键字出现的次数)。
在这里记录一下Tp5保持分页状态的两种方法:
一:
Db::name('data') -> where($where) -> paginate(5,false,['query' => request()->param()]);
二:
$params = $this -> request -> param();
$users = Db::name('data')->where($where)->paginate(15);
// 在 render 前,使用appends方法保持分页条件
$users->appends($params);
$this->assign('page', $users->render());//单独提取分页出来
$sql="select a.*,b.name from obj_users_admin a left join obj_users_admin_groups b on a.gid=b.id";
$b=$num=2; //每页显示记录数
$page=input("get.page")?input("get.page"):1; //当前页
$count = Db::execute($sql); //总条数
$a=($page-1)*$b;
$sql2=$sql." limit $a,$b";
$list = Db::query($sql2); //当前页数据
$arr=Bootstrap::make($list,$num,$page,$count,false,['path'=>Bootstrap::getCurrentPath(),'query'=>request()->param()]);
print_r($arr);
print_r($arr->render());
徐多蔚亲测无误!
tp5中LEFT分页格式:
$a=config("database.prefix")."users_admin";
$b=config("database.prefix")."users_admin_groups";
$arr=$obj->db->table("$a a")
->join("$b b", "a.gid=b.id", 'LEFT')->where($tj)->field("a.*,b.name")->order("a.updatetime desc,a.id desc")->paginate(2,false, [
'query' => Request::instance()->param(),//不丢失已存在的url参数
]);
php将数组原样写入或保存到文件有三种方法可以实现,
第一种方法是使用serialize,
第二种方法是使用print_r,
第三种方法是使用var_export,
本文章向大家介绍这三种方法是如何将数组写入到文件的,需要的朋友可以参考一下。
使用 serialize 将数组序列化,存储在文件中;调用时,再使用 unserialize 还原。
<?php
$file='./cache/phone.php';
$array=array('color'=> array('blue','red','green'),'size'=> array('small','medium','large'));
//缓存
if(false!==fopen($file,'w+')){
file_put_contents($file,serialize($array));//写入缓存
}
//读出缓存
$handle=fopen($file,'r');
$cacheArray=unserialize(fread($handle,filesize($file)));
用print_r 将数组打印到txt文件中。
<?php
$b = array (
'm' => 'monkey',
'foo' => 'bar',
'x' => array ('x', 'y', 'z'));
$results = print_r($b, true);
file_put_contents('filename.txt', print_r($b, true));
?>
用var_export 直接将数组以完整数组的形式存储到文件中。
<?php
$file='./cache/phone.php';
$array=array('color'=> array('blue','red','green'),'size'=> array('small','medium','large'));
//缓存
$text='<?php $rows='.var_export($array,true).';';
if(false!==fopen($file,'w+')){
file_put_contents($file,$text);
}else{
echo '创建失败';
}