你可以使用 PHP 的字符串函数来实现将字符串或数字的中间4位替换为星号的功能。以下是一个示例代码:
```php
function maskMiddleFour($input) {
// 将输入转换为字符串
$str = (string)$input;
$length = strlen($str);
// 如果长度小于等于4,直接返回全部星号
if ($length <= 4) {
return str_repeat('*', $length);
}
// 计算中间4位的起始位置
$start = (int)(($length - 4) / 2);
// 替换中间4位为星号
$masked = substr_replace($str, '****', $start, 4);
return $masked;
}
// 示例用法
echo maskMiddleFour("1234567890"); // 输出: 123****890
echo maskMiddleFour(1234567890); // 输出: 123****890
echo maskMiddleFour("1234"); // 输出: ****
echo maskMiddleFour("123"); // 输出: ***
```
### 代码说明:
1. **maskMiddleFour** 函数接受一个输入参数 `$input`,并将其转换为字符串。
2. 如果字符串长度小于等于4,则直接返回全部星号。
3. 否则,计算中间4位的起始位置,并使用 `substr_replace` 函数将这4位替换为 `****`。
4. 最后返回替换后的字符串。
### 示例输出:
- `maskMiddleFour("1234567890")` 输出 `123****890`
- `maskMiddleFour(1234567890)` 输出 `123****890`
- `maskMiddleFour("1234")` 输出 `****`
- `maskMiddleFour("123")` 输出 `***`
这个函数可以处理字符串和数字输入,并确保中间4位被替换为星号。