PHP如何提取HTTP链接中第一个路径斜杠之前的内容?
如何在PHP中提取URL的基础域名(含端口)
嘿,新手完全不用不好意思,这其实是PHP里处理URL非常常见的需求,而且有很稳妥的内置方法可以解决,不用自己瞎写字符串截取踩坑~
最推荐的方法是用PHP内置的parse_url()函数,它能把URL拆分成各个组成部分(协议、主机、端口、路径等),然后我们只需要拼接需要的部分就行:
// 你的原始链接 $originalLink = 'http://mytour.com:8080/en/admin/dashboard//tmp/Rc4Lw3'; // 解析URL成关联数组 $urlComponents = parse_url($originalLink); // 拼接基础URL:协议 + 主机 $baseLink = $urlComponents['scheme'] . '://' . $urlComponents['host']; // 如果URL里有端口,就加上端口 if (isset($urlComponents['port'])) { $baseLink .= ':' . $urlComponents['port']; } // 此时$baseLink就是你要的 http://mytour.com:8080 echo $baseLink;
为什么推荐用parse_url()而不是手动截取?
- 它是PHP官方专门为URL处理设计的函数,能兼容各种合法URL格式(比如https、带非标准端口、甚至带用户名密码的URL)
- 不用考虑路径里的特殊字符或者斜杠数量,完全避免手动截取的各种边界错误
- 如果原始URL没有端口(比如默认的80端口的http或者443端口的https),代码也会自动跳过端口部分,不会生成多余的冒号
内容的提问来源于stack exchange,提问作者CloudSeph
相关产品推荐
相关产品推荐

