三分快乐,七纷幸福 发布的文章

最近业务需要,需要统计每天、每周、每月、每季度、上半年、全年等数据,所以找到找到了Carbon插件,可以方便的获取对应时间范围,例如:

today 根据当前时间创建Carbon实例,时间重置为 0时0分0秒

startOfWeek 重置当前实例时间为 本周的第一天,同时设置 0时0分0秒

endOfWeek 重置当前实例时间为 本周的最后一天,同时设置 23时59分59秒

startOfMonth 重置当前实例时间为 本月第一天,同时设置 0时0分0秒

endOfMonth 重置当前实例时间为 本月最后一天,同时设置 23时59分59秒

...

Carbon实例详细参考:
https://www.jianshu.com/p/7e45bc4d0006

当前示例是展示curl请求raw数据的方法,如下:

$headers = [
    'Content-Type:application/json',
    'App-Key:'.$key,
    'App-Sign:'.$result,
    'X-AjaxPro-Method:ShowList',
    'User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36'
];

$callBack = [
    "mobile" => 111,
    "content" => "测试"
];

$postUrl= 'http://www.baidu.com/';

$jsonContent = json_encode($callBack);

//用法
$result = http_post_json($postUrl, $headers, $jsonContent);

/* @param $postUrl
 * @param $headers
 * @param $jsonContent
 * @return mixed
 */
function http_post_json($postUrl, $headers, $jsonContent)
{
    $ch = curl_init();//初始化curl
    curl_setopt($ch, CURLOPT_URL,$postUrl);//抓取指定网页
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);//执行命令
    curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
    curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonContent);
    $data = curl_exec($ch);//运行curl
    curl_close($ch);
    $data = json_decode($data,true);
    return $data;
}

General

%v 以默认的方式打印变量的值
%T 打印变量的类型

Integer

%+d 带符号的整型,fmt.Printf(“%+d”, 255)输出+255
%d 不带符号的整形,注意和 %+d的区别。
%o 不带零的八进制
%#o 带零的八进制
%x 小写的十六进制
%X 大写的十六进制
%#x 带0x的十六进制
%U 打印Unicode字符
%#U 打印带字符的Unicode
%b 打印整型的二进制
%q 打印单引号

Integer width

%5d 表示该整型最大长度是5
%-5d则相反,打印结果会自动左对齐
%05d会在数字前面补零。

Float

%f (=%.6f) 6位小数点
%e (=%.6e) 6位小数点(科学计数法)
%g 用最少的数字来表示
%.3g 最多3位数字来表示
%.3f 最多3位小数来表示

String

%s 正常输出字符串
%q 字符串带双引号,字符串中的引号带转义符
%#q 字符串带反引号,如果字符串内有反引号,就用双引号代替
%x 将字符串转换为小写的16进制格式
%X 将字符串转换为大写的16进制格式
% x 带空格的16进制格式

String Width (以5做例子)

%5s 最小宽度为5
%-5s 最小宽度为5(左对齐)
%.5s 最大宽度为5
%5.7s 最小宽度为5,最大宽度为7
%-5.7s 最小宽度为5,最大宽度为7(左对齐)
%5.3s 如果宽度大于3,则截断
%05s 如果宽度小于5,就会在字符串前面补零

Struct

%v 正常打印。比如:{sam {12345 67890}}
%+v 带字段名称。比如:{name:sam phone:{mobile:12345 office:67890}
%#v 用Go的语法打印。
比如main.People{name:”sam”, phone:main.Phone{mobile:”12345”, office:”67890”}}

Boolean

%t 打印true或false

Pointer

%p 带0x的指针
%#p 不带0x的指针

原文参考:http://www.hangdaowangluo.com/archives/1918

因为服务器早期文件为gb2312格式,在执行vim命令时会显示乱码,网上查了好多,都是需要修改配置文件,然后使得vim命令支持gbk,但是本身没有服务器权限,也无权配置服务器信息,则使用下面的命令:

sudo vim "+e ++enc=gbk" xxx.php

使用改命令时需注意在执行撤销操作时,一定要注意查看当前文件的编码状态,防止退回乱码时保存

区别:
1、切片是指针类型,数组是值类型;
2、数组的长度是固定的,而切片不是(切片可以看成动态的数组);
3、切片比数组多一个容量(cap)属性;
4、切片的底层是数组

示例:
package main
import (

   "fmt"

)

func main() {
   a := [2]int{5, 6}
   b := [2]int{5, 6}
   if a == b {
      fmt.Println("equal")
   } else {
      fmt.Println("not equal")
   }

   /*
      if a[:] == b[:] {
          fmt.Println("equal")
      } else {
          fmt.Println("not equal")
      }
   */

}

输出:
1.png
去掉注释输出:
2.png
说明:

go语言中数组和切片的区别

● 切片是指针类型,数组是值类型

● 数组的长度是固定的,而切片不是(切片是动态的数组)

● 切片比数组多一个属性:容量(cap)

● 切片的底层是数组

所以,a、b定义的是数组类型,数组对比是相同的

但是,a[:]、b[:]是切片,切片之间不能进行等值判断,只能和nil判断

文章转自:https://www.php.cn/be/go/465817.html