Tool
<br/>
>i 本文档的最新修订日期是:
> **2022-12-30**
# Tool
## 模块简述
一些实用的小功能。
## 依赖
本模块依赖于PHP拓展 <font color="#c7254e">`cURL`</font> 。
## :: random()方法
### 语法
**<font color="#0099ff"><font color="#ff6600">Tool</font> :: <font color="#ff6600">random</font> ( <kbd>传参数组</kbd> )</font>**
### 说明
生成一个随机字符串。
此方法 <font color="#c7254e">`支持`</font> 中文参数名。
### 参数
* **<font color="#ff6600">`mode(模式)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`'AaN'`</font>:
用以指定所生成字符串的字符 <font color="#c7254e">`构成方式`</font> 。
1. 此参数值中含有 <font color="#c7254e">`A`</font> 时,生成的字符串将含有 <font color="#c7254e">`大写`</font> 字母A-Z;
2. 此参数值中含有 <font color="#c7254e">`a`</font> 时,生成的字符串将含有 <font color="#c7254e">`小写`</font> 字母a-z;
2. 此参数值中含有 <font color="#c7254e">`N`</font> 时,生成的字符串将含有 <font color="#c7254e">`数字`</font> 0-9。
* **<font color="#ff6600">`length(长度)`</font>** <font color="#0099ff">`(Int)`</font> <font color="#BBBBBB">`32`</font>:
用以指定随机字符串的 <font color="#c7254e">`长度`</font> 。
### 返回
<font color="#0099ff">`(String)`</font> 类型。
返回生成的随机字符串。
>d 虽然字符串为随机生成,但仍有 <font color="#c7254e">`极小概率重复`</font> ,因此 <font color="#c7254e">`不要`</font> 直接使用本方法生成UUID。
## :: uuid()方法
### 语法
**<font color="#0099ff"><font color="#ff6600">Tool</font> :: <font color="#ff6600">uuid</font> ( <kbd>传参数组</kbd> )</font>**
### 说明
生成一个几乎不可能会重复的Uuid。
此方法 <font color="#c7254e">`支持`</font> 中文参数名。
### 参数
* **<font color="#ff6600">`md5(md5)`</font>** <font color="#0099ff">`(Bool)`</font> <font color="#BBBBBB">`FALSE`</font>:
用以指定是否返回符合MD5加密结果格式的字符串。
## :: getHeader()方法
### 语法
**<font color="#0099ff"><font color="#ff6600">Tool</font> :: <font color="#ff6600">getHeader</font> ( <kbd>传参数组</kbd> )</font>**
### 说明
获得Header中指定字段的值。
此方法 <font color="#c7254e">`支持`</font> 中文参数名。
### 参数
* **<font color="#ff6600">`field(字段)`</font>** <font color="#0099ff">`(Array)`</font> <font color="#BBBBBB">`必须`</font>:
用以指定需要获取Header中哪些字段的值。
数组键无需定义,每一个元素的值代表一个需要获取字段的字段名。
### 返回
<font color="#0099ff">`(Array)`</font> 类型。
由Header中指定字段的值组成的数组,键为字段名,值为Header中对应字段的值。
如果Header中不存在某个指定的字段,那么它 <font color="#c7254e">`不会`</font> 出现在返回的数组中。
## :: send()方法
### 语法
**<font color="#0099ff"><font color="#ff6600">Tool</font> :: <font color="#ff6600">send</font> ( <kbd>传参数组</kbd> )</font>**
### 说明
向目标地址发送数据。
此方法 <font color="#c7254e">`支持`</font> 中文参数名。
### 参数
* **<font color="#ff6600">`url(地址)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`<必须>`</font>:
用以指定向何处发送数据。
* **<font color="#ff6600">`mode(模式)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`'GET'`</font>:
用以指定以什么方式向远程发送数据。
可选的值如下:
```
GET | POST | PUT | DELETE
```
当值为 <font color="#c7254e">`POST`</font> 时,如果传入参数 <font color="#c7254e">`data`</font> 的值的类型为数组时,请求的Content-Type为 <font color="#c7254e">`multipart/form-data`</font> ,否则为 <font color="#c7254e">`application/x-www-form-urlencoded`</font> 。
* **<font color="#ff6600">`data(数据)`</font>** <font color="#0099ff">`(Array | String)`</font> <font color="#BBBBBB">`[]`</font>:
如果值是一个数组,数组的键为字段名,值为字段对应的值。
也可传入一个想要发送的请求内容的字符串。
* **<font color="#ff6600">`file(文件)`</font>** <font color="#0099ff">`(Array)`</font> <font color="#BBBBBB">`[]`</font>:
用以指定所发送的文件。
传入的数组的键为字段名,值为字段对应的文件的路径。
仅在参数 <font color="#c7254e">`mode`</font> 的值为 <font color="#c7254e">`POST`</font> ,并且参数 <font color="#c7254e">`Data`</font> 的值的类型为数组时,本参数才有效。
* **<font color="#ff6600">`header(header)`</font>** <font color="#0099ff">`(Array)`</font> <font color="#BBBBBB">`[]`</font>:
用以指定需要发送的Header头,无需定义键,每一个Header中的字段作为一个元素。
* **<font color="#ff6600">`encode(编码)`</font>** <font color="#0099ff">`(Bool)`</font> <font color="#BBBBBB">`TRUE`</font>:
是否对参数 <font color="#c7254e">`data`</font> 的值进行URL编码。
当值为 <font color="#c7254e">`FALSE`</font> 时,将不会编码;当值为 <font color="#c7254e">`TRUE`</font> 时将进行URL编码。
当参数 <font color="#c7254e">`mode`</font> 的值不为 <font color="#c7254e">`GET`</font> ,并且参数 <font color="#c7254e">`data`</font> 的值的类型为数组时,本参数无效(将始终进行编码)。
* **<font color="#ff6600">`timeout(超时时间)`</font>** <font color="#0099ff">`(Int)`</font> <font color="#BBBBBB">`15`</font>:
用以指定超时时间。
值的单位为秒(s)。
* **<font color="#ff6600">`ssl(ssl)`</font>** <font color="#0099ff">`(Bool)`</font> <font color="#BBBBBB">`FALSE`</font>:
是否进行SSL验证。
当值为 <font color="#c7254e">`FALSE`</font> 时,将跳过SSL验证,但并不安全;当值为 <font color="#c7254e">`TRUE`</font> 时将进行SSL验证。默认进行SSL验证。
### 返回
<font color="#0099ff">`(String | Bool)`</font> 类型。
当目标地址对请求响应时,会返回String类型的目标地址的响应。
当服务器网络不畅,或目标地址超时响应时,可能返回空字符串或 <font color="#c7254e">`FALSE`</font> 。