1.下载解压文件
先进入七牛云开发者中心->对象存储->php SDK
然后下载七牛云对象存储php sdk
然后将七牛云sdk解压,并将解压后的文件放入thinkphp5.1目录下的extend目录下(可将七牛云sdk目录更名为Qiniu)

2.在控制器中引入七牛云sdk
先使用reqire_once引入七牛云autoload.php 并使用命名空间

use Qiniu\Auth;
require_once "../extend/Qiniu/autoload.php";

(Qiniu是七牛云sdk目录)

3.使用七牛云sdk(以生成上传token为例)

public function qiniu()
    {
        $bucket = 'bucket';
        $accessKey = 'Access_Key';
        $secretKey =  'Secret_Key';
        $auth = new Auth($accessKey, $secretKey);
        $upToken = $auth->uploadToken($bucket);
        echo $upToken;
    }

可以再在前端使用这个token上传文件(参照七牛云对象存储JavaScript sdk)

1.登录ssh
首先在管理页面开启ssh20200728155021.png
进入putty(点击可进入官网),输入群晖的局域网ip地址(默认端口为22).
输入用户名和密码,再用sudo -i使用root用户
20200728162425.png(成功后如图)

2.进入配置文件
输入命令

cat /etc/nginx/app.d/server.webstation-vhost.conf

查看配置
20200728162657.png
如图,我们要修改这个端口号为11000的虚拟主机的配置,我们可以进入
20200728162819.png这个目录,即include后面的目录,

cd /usr/local/etc/nginx/conf.d/fb275ea7-bd25-4d12-af28-b203b4ce83fe
vi user.conf

vi打开编辑,再输入伪静态规则
如thinkphp5.1的是

location / {
   if (!-e $request_filename) {
           rewrite  ^(.*)$  /index.php?s=/$1  last;
    }
}

我们可以先按i,开启输入模式,再将配置文件写入,完成后,按ESC键,再输入 :wq 保存退出
重启群晖的nginx服务
输入命令

nginx -s reload

即可完成重启,伪静态规则生效

使用 for 对象名 in 语句。
语法如下:

for(var 变量 in 对象){

}

对象中的属性数量决定了for循环的执行次数。属性名会赋值给“变量”。取值用 obj[变量]。(由于变量的特殊性)。

分类
内建对象:
ES标准中定义的对象,在任何的ES实现中都可以使用。如Math,String,Number,Object等
宿主对象:
在js的运行环境中提供的对象,如浏览器提供的对象。如DOM,BOM等。
自建对象:
由开发人员创建的。

垂直居中布局是指当前元素在父级元素中,垂直方向是居中显示的。
第一种解决方案
改变父级元素的display属性,设置为table-cell,改变vertical-align属性为middle;

#f {
            background-color: red;
            height: 200px;
            width: 400px;
            display: table-cell;
/*display属性设置为table表示<table>元素,设置为table-cell表示<td>单元格。*/
           vertical-align: middle;
/* vertical-align设置文本内容的垂直对齐方式(top,middle,bottom)*/        }
        #c {
            height: 100px;
            width: 100px;
            background-color: yellow;
        }
<div id="f">
            <div id="c"></div>
        </div>

这种解决方案兼容性较好,但同样的,vertical-align具有继承性。

第二种解决方案
通过定位的方式解决。
给父级元素设置相对定位(relative)
给子级元素设置绝对定位,同时设置top为50%,transform的值为translateY(-50%)。
例如:

#f{
                background-color: red;
                height: 200px;
                width: 400px;
                
                position:absolute;
            }
            #c{
                height: 100px;
                width: 100px;
                background-color: yellow;
                position: absolute;
                top: 50%;
                transform: translateY(-50%);
            }
<div id="f">
            <div id="c"></div>
            </div>

水平居中布局是指当前元素在父级容器中,水平方向居中显示。实现水平居中布局的方式多种多样。以下是三种常用的解决方案。根据这三种方案可以衍生出多种方案。
第一种方案
父元素设置text-align属性为center
子元素设置display属性为inline-block
如:

#f{
                background-color: red;
                height: 200px;
                width: 400px;
                text-align: center;
            }//父元素属性
/*text-align为文本内容设置对齐方式(left,right,center)*/
            #c{
                height: 100px;
                width: 100px;
                background-color: yellow;
                display: inline-block;
            }//设置子元素属性
/*display属性的值block(块级元素),inline(内联元素),inline-block(行内块级元素)*/
<div id="f">
            <div id="c"></div>
            </div>

这种方案的兼容性比较好,但是text-align属性具有继承性,会导致子级元素的文本也居中显示。(解决办法是设置第一子级元素的text-align属性)

第二种解决方案
设置子级元素的displays属性为table或者block,margin属性为0 auto。
例如:

#f{
                background-color: red;
                height: 200px;
                width: 400px;
            }
            #c{
                height: 100px;
                width: 100px;
                background-color: yellow;
                display:block;
                margin: 0 auto;
            }
<div id="f">
            <div id="c"></div>
            </div>

这种方案只需要设置子级元素即可,但是如果子级元素脱离文档流(如设置display属性或者设置定位的值为absolute或者fixed会使元素脱离文档流),则会使margin的值失效。
第三种解决方案
给父级元素设置相对定位(relative)
给子级元素设置绝对定位,同时设置left为50%,transform的值为translateX(-50%)。
例如:

#f{
                background-color: red;
                height: 200px;
                width: 400px;
                position:relative;//开启腹肌元素的定位,当然,在此例中还可以设置为absolute或fixed等
            }
/*把子级元素设置为相对定位,若父级元素未设置定位,则子级元素的定位相对于页面,故须开启父级元素的定位
            #c{
                height: 100px;
                width: 100px;
                background-color: yellow;
                position: absolute;
                left: 50%;
                transform: translateX(-50%);
            }
<div id="f">
            <div id="c"></div>
            </div>

这种方案父级元素难以影响子级元素居中效果,但由于transform属性是css3中新增的属性,兼容性较差。