检查php 程序外部请求,如何使用PHP检查URL是外部URL还是内部URL?

本文介绍如何使用parse_url函数分析URL,特别关注主机名与本地链接的区别,并提供两种函数实现:一种区分顶级域名和子域名,另一种处理www前缀。通过实例探讨如何确保www.example.com和example.com被视为同一主机。
摘要由CSDN通过智能技术生成

使用

parse_url并将主机与本地主机进行比较(通常但不总是与$_SERVER [‘HTTP_HOST’]相同)

function isexternal($url) {

$components = parse_url($url);

return !empty($components['host']) && strcasecmp($components['host'], 'example.com'); // empty host will indicate url like '/relative.php'

}

Hovewer这将把www.example.com和example.com视为不同的主机.如果您希望将所有子域都视为本地链接,那么该函数将会更大一些:

function isexternal($url) {

$components = parse_url($url);

if ( empty($components['host']) ) return false; // we will treat url like '/relative.php' as relative

if ( strcasecmp($components['host'], 'example.com') === 0 ) return false; // url host looks exactly like the local host

return strrpos(strtolower($components['host']), '.example.com') !== strlen($components['host']) - strlen('.example.com'); // check if the url host is a subdomain

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值