PHP网址详细正则表达式端口路径GET

PHP网址的详细正则表达式,它兼容端口,文件夹文件名和GET参数:

$pattern = '/^(?:https?:\/\/)?(?:www\.)?([a-zA-Z0-9\.\-]+)(?::(\d+))?((?:\/[\w\-\.]+)*(?:\/[\w\-\.]+\.[a-zA-Z0-9]+)?)?(?:\?(.*))?$/';

该正则表达式的含义如下:

(?:https?:\/\/)?:可选的协议,http或https,(?:)表示不捕获分组。

(?:www\.)?:可选的“www”子域名。

([a-zA-Z0-9\.\-]+):必需的主机名,只允许字母、数字、点和短划线。

(?::(\d+))?:可选的端口号,只允许数字。

((?:\/[\w\-\.]+)*(?:\/[\w\-\.]+\.[a-zA-Z0-9]+)?)?:可选的路径,允许多个文件夹和文件名,最后一个是文件名和文件扩展名,只允许字母、数字、点、短划线和正斜杠。

(?:\?(.*))?:可选的GET参数,只允许字母、数字、点、短划线、下划线、正斜杠和等号。

该正则表达式捕获的组如下:

$matches[1]:主机名。

$matches[2]:端口号。

$matches[3]:路径。

$matches[4]:GET参数。

使用preg_match函数来验证URL是否匹配该正则表达式:

$url = 'http://www.example.com:8080/folder/file.php?param=value';
if (preg_match($pattern, $url, $matches)) {
    echo "URL匹配成功!";
} else {
    echo "URL匹配失败!";
}

希望这可以帮助到您!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YUJIANYUE

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值