Following is not the most efficient solution out there. But if you are fan of regex, it is easy to read and maintain.
/** * Change extension of a given filepath. If filename does not have extension, * the new extension is simply appended. * * @param string $newExt May or may not start with . */function changeExtension(string $filepath, string $newExt): string { $ext = str_starts_with($newExt, '.') ? $newExt : '.' . $newExt; return preg_replace('/\.[^.]+$/', '', $filepath) . $ext;}
https://serveo.net/