Categorygithub.com/PeterYangs/tools
modulepackage
0.2.52
Repository: https://github.com/peteryangs/tools.git
Documentation: pkg.go.dev

# README

tools

go的工具集

安装

go get github.com/PeterYangs/tools

1.网络请求

网络请求已拆分到新仓库https://github.com/PeterYangs/request


import "github.com/PeterYangs/tools/http"

//获取客户端
client := http.Client()

//get请求
str, err := client.Request().GetToString("https://www.baidu.com")

//post请求
str, err := client.Request().PostToString("https://www.baidu.com")



//携带参数
p := map[string]interface{}{"name": []string{"123", "456"}, "age": 1, "nickname": "123"}

str, err := client.SetTimeout(1 * time.Second).Request().SetParameter(p).GetToString("https://www.google.com/")


//复杂参数
p := map[string]interface{}{
		"name":     []string{"123", "456"},
		"age":      1,
		"nickname": "123",
		"form": map[string]interface{}{
			"one":   "1",
			"two":   "2",
			"three": []string{"123", "456"},
			"four": map[string]interface{}{
				"one": "1",
				"two": "2",
			},
		},
	}
	
client.Request().SetParameter(p).GetToString("http://list.com/pass/get.php")
	


//自定义header
header := map[string]string{"user-agent": "Iphone100"}

//添加全局header	
client:=http.Client().SetHeader(header)

//局部header	
re, err :=client.Request().SetHeader(header).GetToString("http://list.com/pass/header.php")


//proxy
client := http.Client()

client.SetProxyAddress("http://127.0.0.1:4780")

html, err := client.Request().GetToString("https://www.google.com/")


//timeout
client := http.Client()

client.SetTimeout(1*time.Second)

html, err := client.Request().GetToString("https://www.google.com/")


//重试次数,默认为0
html,err:=client.Request().SetReTryTimes(3).GetToString("https://xxxccaacasdad.com")




2.时间处理

//时间戳转时间格式,目前仅支持Y、m、d、H、i、s、w
tools.Date("Y-m-d", time.Now().Unix())
tools.Date("Y-m-d H:i:s", time.Now().Unix()))
tools.Date("Y-m-d H:i", time.Now().Unix())
tools.Date("Y", time.Now().Unix())
tools.Date("Ym", time.Now().Unix()))
tools.Date("Ymd", time.Now().Unix()))
tools.Date("H", time.Now().Unix()))
tools.Date("Hi", time.Now().Unix()))

//时间格式转时间戳,单位秒
tools.StrToTime("2020/12/12")
tools.StrToTime("2020-12-12")
tools.StrToTime("2020-12-12 11:32:00")
tools.StrToTime("2020/12/12 11:32:00")




3.数组操作


//in_array
array := []string{"1", "2", "3", "4"}

b := tools.InArray(array, "4")

println(b)

array2 := []int{1, 2, 3, 4}

b2 := tools.InArray(array2, 4)

println(b2)




//implode

arr:=[]string{"1","2","3"}

fmt.Println(tools.Implode("-",arr))





4.文件操作

package main

import (
	"fmt"
	"github.com/PeterYangs/tools/file"
)

func main() {
    
	//一次性读取
	str, err := file.Read("README.md")

	if err != nil {

		fmt.Println(err)

		return
	}

	fmt.Println(string(str))


	//逐行读取
	err := file.ReadLine("README.md", func(line []byte) {

		fmt.Println(string(line))

	})

	if err != nil {

		fmt.Println(err)

		return
	}

	//一次性写入
	file.Write("xx.txt", []byte("123"))
}


5.字符串操作


//explode
str:="1,2,3"

fmt.Println(tools.Explode(",",str))




//md5
str := "123"

fmt.Println(tools.Md5(str))




//字符串截取
str := "我尼玛"

//起始1,长度1
tools.SubStr(str, 1, 1)

//起始字符串长度倒数第二,长度最大
tools.SubStr(str, -2, -1)

//起始0,长度倒数第二
tools.SubStr(str, 0, -2)



6.3des加密

package main

import (
	"fmt"
	"github.com/PeterYangs/tools/secret"
)

func main() {

	d := secret.NewDes()

	source := "hello world"
	fmt.Println("原字符:", source)

	key := d.GenerateKey() //24位

	//加密
	code, err := d.Encyptog3DES([]byte(source), key)

	if err != nil {

		fmt.Println("加密错误", err)

		return
	}

	fmt.Println("密文:", string(code.ToBase64()))

	//解密
	real, err := d.Decrptog3DES(code.ToBase64(), key, secret.Base64)
	//
	if err != nil {

		fmt.Println("解密错误", err)

		return
	}

	fmt.Println("解密:", string(real))

}

7.文件夹操作

package main

import (
	"fmt"
	"github.com/PeterYangs/tools/file"
)

func main() {

	//获取目标文件夹下的所有文件(包含子目录,返回false则不继续遍历)
	file.GetDirList("./", func(path string) bool {

		fmt.Println(path)

		return true
	})

}

8.Hash

package main

import (
	"fmt"
	"github.com/PeterYangs/tools"
)

func main() {

	h := tools.HashHmac([]byte("132"), []byte("456"), false)

	fmt.Println(h)

}

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Functions

No description provided by the author
时间格式函数.
删除文件.
DownloadFile 下载文件.
DownloadImage 图片下载.
No description provided by the author
获取文件名拓展名.
GetToBody 注意要手动关闭body.
GetToResp 注意要手动关闭body.
GetToString get获取字符串结果.
GetToStringWithHeader get获取字符串结果并返回头部信息.
No description provided by the author
No description provided by the author
老版兼容函数.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
创建多级文件夹.
Mt_rand 老版本兼容函数.
No description provided by the author
PostToString post获取字符串结果.
Query 请求底层函数.
读取文件.
发送邮件.
No description provided by the author
No description provided by the author
SubStr 字符串截取start为-1则为最后一个,-2则为倒数第二,以此类推length为-1则为最大长度,-2则倒数第二,以此类推.
No description provided by the author

# Structs

No description provided by the author