怎么把原来的 url 得到的某个地址,替换其中的域名呢? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
SkyRing
V2EX    PHP

怎么把原来的 url 得到的某个地址,替换其中的域名呢?

  •  
  •   SkyRing 2022-12-10 11:33:52 +08:00 3240 次点击
    这是一个创建于 1045 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如原来$url 得到 xxx.com/sadasd.jpg ,想要变成 aaa.com/sadasd.jpg ,这样子,怎么弄呢?

    9 条回复    2022-12-12 09:07:19 +08:00
    GreatAuk
        1
    GreatAuk  
       2022-12-10 11:54:47 +08:00
    const url = new URL('t/901497#reply0')
    url.host = 'www.baidu.com'
    console.log(url.href)
    muzihuaner
        2
    muzihuaner  
       2022-12-10 11:57:10 +08:00 via Android
    可以问一下 chatgpt
    dongisking
        3
    dongisking  
       2022-12-10 12:03:30 +08:00
    ```
    $str = 'xxx.com/sadasd.jpg';
    $replace = 'aa.com';
    $search = 'xxx.com';
    echo str_ireplace($search, $replace, $str);
    ```
    Thecosy
        4
    Thecosy  
       2022-12-10 12:28:25 +08:00
    @muzihuaner 如果你想替换 URL 中的域名,你可以使用字符串操作来构造新的 URL 。下面是一个示例:

    Copy code
    // Define the old and new domain names
    const oldDomain = "old-domain.com";
    const newDomain = "new-domain.com";

    // Define the URL
    const url = "http://old-domain.com/path/to/page.html";

    // Replace the domain name in the URL
    const newUrl = url.replace(oldDomain, newDomain);

    // Print the new URL
    console.log(newUrl); // "http://new-domain.com/path/to/page.html"
    在这个例子中,我们定义了原来的域名和新的域名,然后使用 String.replace() 方法来替换 URL 中的域名。

    希望这对你有帮助!
    来自 chatgpt
    neotheone2333
        5
    neotheone2333  
       2022-12-10 12:36:37 +08:00
    可以多问一句:我想要一个更通用的方法

    如果你想要一个更通用的方法来替换 URL 中的域名,那么你可以使用一个函数来实现。例如,下面是一个简单的函数,它可以接收一个 URL 和一个新的域名,然后返回替换后的 URL 。

    Copy code
    function replaceDomain(url, newDomain) {
    let oldDomain = /[^/]*?(?=\/)/;
    return url.replace(oldDomain, newDomain);
    }
    在这个函数中,我们首先使用正则表达式 /[^/]*?(?=\/)/ 来匹配 URL 中的域名。这个正则表达式的工作原理是,先匹配所有不含斜杠的字符,然后在后面加上一个非贪婪的匹配,用来匹配第一个出现的斜杠。

    然后,我们使用 replace 方法来替换原来的域名。最后,我们返回替换后的 URL 。

    下面是一个使用这个函数的例子:

    Copy code
    let oldUrl = 'xxx.com/sadasd.jpg';
    let newUrl = replaceDomain(oldUrl, 'aaa.com');
    console.log(newUrl); // 输出 aaa.com/sadasd.jpg
    希望这些信息能够帮助你。如果你还有其他问题,请继续提问。
    hqt1021
        6
    hqt1021  
       2022-12-10 12:41:09 +08:00   1
    @Thecosy 卧槽?真 tm 来 ChatGPT
    ChoateYao
        7
    ChoateYao  
       2022-12-10 14:07:34 +08:00
    用 parse_url 想想怎么替换就怎么替换。
    SkyRing
        8
    SkyRing  
    OP
       2022-12-10 14:47:58 +08:00
    有点看不懂,我还是抽空在补习一下好了。不过解决了,虽然是 js 随便糊了一下。先用着好了。
    jifengg
        9
    jifengg  
       2022-12-12 09:07:19 +08:00
    一楼已经给了 js 的标准答案
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     952 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 20:38 PVG 04:38 LAX 13:38 JFK 16:38
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86