private static function parse($content = '', $atts = array())
{
//过滤html标签避免出错
$content = strip_tags($content);
//取出[lrc]
$lyric = false;
if (preg_match('/\\[(lrc)](.*?)\\[\\/\\1]/si', $content, $lyrics)) {
$lyric = $lyrics[2];
}
//最终结果
$return = array();
//解析歌词,如果没有[lrc][/lrc]文本歌词但是有lrc的url的话直接从url中读取并缓存
if (isset($atts['lrc']) && !$lyric) {
if ($c = self::getlrc($atts['lrc'])) {
$lyric = $c;
}
}
$atts['lyric'] = false;
//解析网易云音乐
if (isset($atts['id'])) {
$type = isset($atts['type']) ? $atts['type'] : 'song';
$result = self::parse_netease($atts['id'], $type);
if ($result) {
$return = array_merge($return, $result);
}
}
//当网易只返回了一首歌或是插入自己上传的音乐才考虑下方情况
if (isset($atts['url']) || count($return) === 1) {
//自定义歌词
if ($lyric) {
$atts['lyric'] = $lyric;
}
//解析封面
if (!isset($atts['id']) && isset($atts['url']) && !isset($atts['cover']) || isset($atts['cover']) && $atts['cover'] == 'search') {
$title = isset($atts['title']) ? $atts['title'] : '';
$artist = isset($atts['artist']) ? $atts['artist'] : '';
$words = $title . ' ' . $artist;
if ($title || $artist) {
if ($p = self::getcover($words)) {
$atts['cover'] = $p;
} elseif ($artist) {
if ($p = self::getcover($artist)) {
$atts['cover'] = $p;
}
}
}
}
//标题和艺术家
if (isset($atts['artist'])) {
$atts['author'] = $atts['artist'];
} elseif (!isset($atts['id']) && isset($atts['url'])) {
$atts['author'] = 'Unknown';
}
if (!isset($atts['title']) && !isset($atts['id']) && isset($atts['url'])) {
$atts['title'] = 'Unknown';
}
//假如不要自动查找封面的话
if (isset($atts['cover'])) {
if ($atts['cover'] == 'false' || !(bool) $atts['cover']) {
$atts['cover'] = '';
}
$atts['pic'] = $atts['cover'];
}
//判断是修改网易获取的歌曲属性还是添加自己的歌曲链接
if (!isset($atts['id'])) {
$return[] = $atts;
} else {
//当没有自定义歌词时候删除变量避免覆盖掉原有歌词
if (!$atts['lyric']) {
unset($atts['lyric']);
}
$return[0] = array_merge($return[0], $atts);
}
}
return $return;
}