{"id":39380921,"url":"https://github.com/phpisfirstofworld/tools","last_synced_at":"2026-01-18T03:00:50.482Z","repository":{"id":46098752,"uuid":"320169192","full_name":"phpisfirstofworld/tools","owner":"phpisfirstofworld","description":"go的工具集","archived":false,"fork":false,"pushed_at":"2024-12-13T14:58:17.000Z","size":88,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-22T15:10:04.272Z","etag":null,"topics":["go","phptogo","tool"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/phpisfirstofworld.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-12-10T05:27:04.000Z","updated_at":"2024-12-13T14:57:47.000Z","dependencies_parsed_at":"2024-12-13T15:48:15.813Z","dependency_job_id":"5cb0ffc4-ae11-431b-b4d9-9cfa6b4648a6","html_url":"https://github.com/phpisfirstofworld/tools","commit_stats":null,"previous_names":["peteryangs/tools"],"tags_count":77,"template":false,"template_full_name":null,"purl":"pkg:github/phpisfirstofworld/tools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phpisfirstofworld%2Ftools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phpisfirstofworld%2Ftools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phpisfirstofworld%2Ftools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phpisfirstofworld%2Ftools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phpisfirstofworld","download_url":"https://codeload.github.com/phpisfirstofworld/tools/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phpisfirstofworld%2Ftools/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28528026,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["go","phptogo","tool"],"created_at":"2026-01-18T03:00:27.843Z","updated_at":"2026-01-18T03:00:50.408Z","avatar_url":"https://github.com/phpisfirstofworld.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tools\n\ngo的工具集\n\n**安装**\n```shell\ngo get github.com/PeterYangs/tools\n```\n\n\n**1.网络请求**\n\n网络请求已拆分到新仓库https://github.com/PeterYangs/request\n\n```go\n\nimport \"github.com/PeterYangs/tools/http\"\n\n//获取客户端\nclient := http.Client()\n\n//get请求\nstr, err := client.Request().GetToString(\"https://www.baidu.com\")\n\n//post请求\nstr, err := client.Request().PostToString(\"https://www.baidu.com\")\n\n\n\n//携带参数\np := map[string]interface{}{\"name\": []string{\"123\", \"456\"}, \"age\": 1, \"nickname\": \"123\"}\n\nstr, err := client.SetTimeout(1 * time.Second).Request().SetParameter(p).GetToString(\"https://www.google.com/\")\n\n\n//复杂参数\np := map[string]interface{}{\n\t\t\"name\":     []string{\"123\", \"456\"},\n\t\t\"age\":      1,\n\t\t\"nickname\": \"123\",\n\t\t\"form\": map[string]interface{}{\n\t\t\t\"one\":   \"1\",\n\t\t\t\"two\":   \"2\",\n\t\t\t\"three\": []string{\"123\", \"456\"},\n\t\t\t\"four\": map[string]interface{}{\n\t\t\t\t\"one\": \"1\",\n\t\t\t\t\"two\": \"2\",\n\t\t\t},\n\t\t},\n\t}\n\t\nclient.Request().SetParameter(p).GetToString(\"http://list.com/pass/get.php\")\n\t\n\n\n//自定义header\nheader := map[string]string{\"user-agent\": \"Iphone100\"}\n\n//添加全局header\t\nclient:=http.Client().SetHeader(header)\n\n//局部header\t\nre, err :=client.Request().SetHeader(header).GetToString(\"http://list.com/pass/header.php\")\n\n\n//proxy\nclient := http.Client()\n\nclient.SetProxyAddress(\"http://127.0.0.1:4780\")\n\nhtml, err := client.Request().GetToString(\"https://www.google.com/\")\n\n\n//timeout\nclient := http.Client()\n\nclient.SetTimeout(1*time.Second)\n\nhtml, err := client.Request().GetToString(\"https://www.google.com/\")\n\n\n//重试次数，默认为0\nhtml,err:=client.Request().SetReTryTimes(3).GetToString(\"https://xxxccaacasdad.com\")\n\n\n```\n\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n**2.时间处理**\n\n```go\n//时间戳转时间格式，目前仅支持Y、m、d、H、i、s、w\ntools.Date(\"Y-m-d\", time.Now().Unix())\ntools.Date(\"Y-m-d H:i:s\", time.Now().Unix()))\ntools.Date(\"Y-m-d H:i\", time.Now().Unix())\ntools.Date(\"Y\", time.Now().Unix())\ntools.Date(\"Ym\", time.Now().Unix()))\ntools.Date(\"Ymd\", time.Now().Unix()))\ntools.Date(\"H\", time.Now().Unix()))\ntools.Date(\"Hi\", time.Now().Unix()))\n\n//时间格式转时间戳，单位秒\ntools.StrToTime(\"2020/12/12\")\ntools.StrToTime(\"2020-12-12\")\ntools.StrToTime(\"2020-12-12 11:32:00\")\ntools.StrToTime(\"2020/12/12 11:32:00\")\n\n\n```\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n**3.数组操作**\n\n```go\n\n//in_array\narray := []string{\"1\", \"2\", \"3\", \"4\"}\n\nb := tools.InArray(array, \"4\")\n\nprintln(b)\n\narray2 := []int{1, 2, 3, 4}\n\nb2 := tools.InArray(array2, 4)\n\nprintln(b2)\n\n\n\n\n//implode\n\narr:=[]string{\"1\",\"2\",\"3\"}\n\nfmt.Println(tools.Implode(\"-\",arr))\n\n\n\n```\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n**4.文件操作**\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"github.com/PeterYangs/tools/file\"\n)\n\nfunc main() {\n    \n\t//一次性读取\n\tstr, err := file.Read(\"README.md\")\n\n\tif err != nil {\n\n\t\tfmt.Println(err)\n\n\t\treturn\n\t}\n\n\tfmt.Println(string(str))\n\n\n\t//逐行读取\n\terr := file.ReadLine(\"README.md\", func(line []byte) {\n\n\t\tfmt.Println(string(line))\n\n\t})\n\n\tif err != nil {\n\n\t\tfmt.Println(err)\n\n\t\treturn\n\t}\n\n\t//一次性写入\n\tfile.Write(\"xx.txt\", []byte(\"123\"))\n}\n```\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n**5.字符串操作**\n\n```go\n\n//explode\nstr:=\"1,2,3\"\n\nfmt.Println(tools.Explode(\",\",str))\n\n\n\n\n//md5\nstr := \"123\"\n\nfmt.Println(tools.Md5(str))\n\n\n\n\n//字符串截取\nstr := \"我尼玛\"\n\n//起始1，长度1\ntools.SubStr(str, 1, 1)\n\n//起始字符串长度倒数第二，长度最大\ntools.SubStr(str, -2, -1)\n\n//起始0，长度倒数第二\ntools.SubStr(str, 0, -2)\n\n\n\n```\n**6.3des加密**\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"github.com/PeterYangs/tools/secret\"\n)\n\nfunc main() {\n\n\td := secret.NewDes()\n\n\tsource := \"hello world\"\n\tfmt.Println(\"原字符：\", source)\n\n\tkey := d.GenerateKey() //24位\n\n\t//加密\n\tcode, err := d.Encyptog3DES([]byte(source), key)\n\n\tif err != nil {\n\n\t\tfmt.Println(\"加密错误\", err)\n\n\t\treturn\n\t}\n\n\tfmt.Println(\"密文：\", string(code.ToBase64()))\n\n\t//解密\n\treal, err := d.Decrptog3DES(code.ToBase64(), key, secret.Base64)\n\t//\n\tif err != nil {\n\n\t\tfmt.Println(\"解密错误\", err)\n\n\t\treturn\n\t}\n\n\tfmt.Println(\"解密：\", string(real))\n\n}\n```\n\n**7.文件夹操作**\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"github.com/PeterYangs/tools/file\"\n)\n\nfunc main() {\n\n\t//获取目标文件夹下的所有文件（包含子目录，返回false则不继续遍历）\n\tfile.GetDirList(\"./\", func(path string) bool {\n\n\t\tfmt.Println(path)\n\n\t\treturn true\n\t})\n\n}\n```\n\n**8.Hash**\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"github.com/PeterYangs/tools\"\n)\n\nfunc main() {\n\n\th := tools.HashHmac([]byte(\"132\"), []byte(\"456\"), false)\n\n\tfmt.Println(h)\n\n}\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphpisfirstofworld%2Ftools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphpisfirstofworld%2Ftools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphpisfirstofworld%2Ftools/lists"}