Tool
<br/>
>i 本文档的最新修订日期是:
> **2023-12-27**
# 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">`type(类型)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`'standard'`</font>:
用以指定是否返回字符串的类型。
如果参数的值为 <font color="#c7254e">`standard`</font> ,将返回标准的UUID格式字符串。
如果参数的值为 <font color="#c7254e">`string`</font> ,将返回一个类似MD5摘要结果的 <font color="#c7254e">`32位`</font> 长度字符串。
# send()
## 说明
**<font color="#0099ff"><font color="#ff6600">Tool</font> :: <font color="#ff6600">send</font> ( <kbd>传参数组</kbd> )</font>**
向目标地址发送数据。
此方法 <font color="#c7254e">`支持`</font> 中文参数名。
此方法 <font color="#c7254e">`支持`</font> 参数简写。
## 参数
* **<font color="#ff6600">`url(地址)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`<必须>`</font> <font color="#19c58c">`可简写`</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头,<font color="#c7254e">`无需定义键`</font>,每一个Header中的字段(即形如 <font color="#c7254e">`Authorization:abc123`</font> 的字符串)作为一个元素。
* **<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> 。