Skip to content

phpisfirstofworld/tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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)

}