[{url, name}] * 例:http://a.com/1.jpg,http://a.com/2.pdf => [['url'=>'http://a.com/1.jpg','name'=>'1.jpg'], ...] * 文件名取 URL 末段并 urldecode(OSS 路径为中文转义) * @param string $value * @return array */ public static function parseUrlList($value) { $value = trim((string)$value); if ($value === '') { return []; } $list = []; foreach (array_filter(explode(',', $value)) as $url) { $url = trim($url); if (!$url) { continue; } $list[] = [ 'url' => $url, 'name' => urldecode(basename($url)) ]; } return $list; } /** * 将 URL 列表规范化为英文逗号分隔字符串(写入库时使用) * 支持传入 URL 数组或 [{url=>''}] 数组 * @param array|string $value * @return string */ public static function toUrlString($value) { if (is_string($value)) { $value = array_filter(explode(',', $value)); } $urls = []; foreach ((array)$value as $item) { $url = is_array($item) ? trim($item['url'] ?? '') : trim((string)$item); if ($url) { $urls[] = $url; } } return implode(',', array_unique($urls)); } }