新增文件域名相关函数

This commit is contained in:
2026-08-05 15:07:07 +08:00
parent 6e1799dfa0
commit 74315314e9

View File

@@ -25,6 +25,17 @@ final class Util
return ApplicationContext::getContainer()->get($name);
}
/**
* 获取nacos配置
* @param string $key 键
* @param mixed $default 默认值
* @return mixed
*/
public static function getNacosConfig(string $key, $default = null)
{
return config('nacos_config.' . $key, $default);
}
/**
* 获取日志记录器
*/
@@ -269,4 +280,57 @@ final class Util
}
return false;
}
/**
* 获取文件中心域名
* @return string
*/
public static function getFileDomainFromNacos(): string
{
return self::getNacosConfig('file_domain', '');
}
/**
* 为内容中的图片路径添加文件域名
* @param string|array $content 内容
* @param bool $simple 是否简单处理
* @param string|null $fileDomain 文件域名
* @return array|string|null
*/
public static function addFileDomain(array|string $content, bool $simple = false, ?string $fileDomain = null): array|string|null
{
if (empty($content)) {
return $content;
}
$fileDomain = $fileDomain ?? self::getFileDomainFromNacos() . '/';
// 简单处理
if ($simple) {
return is_string($content) ? $fileDomain . ltrim($content, '/') : $content;
}
$content = preg_replace_callback('/<img([^>]*src\s*=\s*["\'])([^"\']*)(["\'][^>]*)>/i', function ($matches) use ($fileDomain) {
$fullMatch = $matches[0];
$prefix = $matches[1];
$src = $matches[2];
$suffix = $matches[3];
$newSrc = $fileDomain . $src;
return '<img' . $prefix . $newSrc . $suffix . '>';
}, $content);
return $content;
}
/**
* 移除内容中图片的文件域名
*/
public static function removeFileDomain(array|string $content, ?string $fileDomain = null): array|string
{
if (empty($content)) {
return $content;
}
$fileDomain = $fileDomain ?? self::getFileDomainFromNacos() . '/';
return str_replace($fileDomain, '', $content);
}
}