You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Laravel框架中如何修改URL链接中的自定义文件名称?

Laravel修改URL指定文件名实现方案

你可以通过PHP原生URL解析能力配合Laravel自带的字符串处理能力完成需求,具体实现如下:

基础实现代码

<?php

use Illuminate\Support\Str;

// 填入你的原始URL
$originalUrl = "https://www116.zippyshare.com/d/hljOkUHz/49620/Jungle.Cruise.2021.480p.WEB-DL.Hindi-Cam.English.MoviesVerse.Co.mkv";

// 解析URL获取各部分结构
$urlParts = parse_url($originalUrl);
// 拆分路径为分段数组
$pathSegments = explode('/', trim($urlParts['path'], '/'));
// 取出路径最后一段的原始文件名
$oldFileName = end($pathSegments);

// 文件名替换:两种方案二选一
// 方案1:已知要替换的固定字符串为MoviesVerse.Co,直接替换
$newFileName = str_replace('MoviesVerse.Co', '{myWebsiteName}', $oldFileName);
// 方案2:通用适配所有同格式mkv文件,不管原中间字段是什么都替换
// $newFileName = preg_replace('/\.[^.]+\.mkv$/', '.{myWebsiteName}.mkv', $oldFileName);

// 替换路径分段中的文件名
$pathSegments[count($pathSegments) - 1] = $newFileName;
// 拼接新路径
$newPath = implode('/', $pathSegments);
// 拼接为完整的新URL
$newUrl = $urlParts['scheme'] . '://' . $urlParts['host'] . '/' . $newPath;

通用封装方案

如果需要多处调用可以封装为公共辅助函数,放在app/Helpers目录下的公共函数文件中即可全局调用:

function replaceUrlLastSegment($originalUrl, $replaceText, $suffix = 'mkv')
{
    $urlParts = parse_url($originalUrl);
    if (!$urlParts || !isset($urlParts['path'])) {
        return $originalUrl;
    }
    $pathSegments = explode('/', trim($urlParts['path'], '/'));
    $oldFileName = end($pathSegments);
    $newFileName = preg_replace('/\.[^.]+\.'.$suffix.'$/', '.' . $replaceText . '.'.$suffix, $oldFileName);
    $pathSegments[count($pathSegments) - 1] = $newFileName;
    $newPath = implode('/', $pathSegments);
    return $urlParts['scheme'] . '://' . $urlParts['host'] . '/' . $newPath;
}

// 调用示例
$targetUrl = replaceUrlLastSegment($originalUrl, '{myWebsiteName}');

内容的提问来源于stack exchange,提问作者Jhon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 05:27:04