'', 'url' => '', 'updated' => '']; $vibe_desc = htmlspecialchars($vibe['description'] ?? '', ENT_QUOTES, 'UTF-8'); $vibe_url = $vibe['url'] ?? ''; $safe_url = htmlspecialchars($vibe_url, ENT_QUOTES, 'UTF-8'); function vibe_detect_type(string $url): string { if (empty($url)) return 'none'; $path = strtolower(parse_url($url, PHP_URL_PATH) ?? ''); $ext = pathinfo($path, PATHINFO_EXTENSION); if (in_array($ext, ['jpg','jpeg','png','gif','webp','bmp','svg','avif'])) return 'image'; if (in_array($ext, ['mp4','webm','ogv','mov'])) return 'video'; if (in_array($ext, ['mp3','flac','wav','ogg','aac','opus','m4a'])) return 'audio'; if (preg_match('/(?:youtube\.com\/watch\?.*v=|youtu\.be\/)([A-Za-z0-9_-]{11})/', $url, $m)) return 'youtube:' . $m[1]; if (preg_match('/vimeo\.com\/(\d+)/', $url, $m)) return 'vimeo:' . $m[1]; return 'link'; } $type = vibe_detect_type($vibe_url); ?>

My Current Vibe

Current vibe