js正则表达式获取后缀名_php – 正则表达式从URL中提取文件扩展名

我正在寻找一个与以下URI中的.js相匹配的正则表达式:

/foo/bar/file.js?cache_key=123

我正在编写一个函数,试图识别作为参数传入的文件类型.在这种情况下,文件以扩展名.js结尾,并且是一个javascript文件.我正在使用PHP和preg_match所以我假设这是一个PCRE兼容的正则表达式.最后,我将构建此表达式,并能够检查作为URI传递的多种文件类型,该URI不仅限于js,还可能是css,图像等.

解决方法:

您可以使用pathinfo和正则表达式的组合. pathinfo将为您提供扩展名加上?cache_key = 123,然后您可以使用与?匹配的正则表达式删除?cache_key = 123.以及之后的一切:

$url = '/foo/bar/file.js?cache_key=123';

echo preg_replace("#\?.*#", "", pathinfo($url, PATHINFO_EXTENSION)) . "\n";

输出:

js

输入:

$url = 'my_style.css?cache_key=123';

输出:

css

显然,如果你需要.,将它添加到文件扩展名字符串是微不足道的.

ETA:如果你确实需要一个正则表达式解决方案,这将解决问题:

function parseurl($url) {

# takes the last dot it can find and grabs the text after it

echo preg_replace("#(.+)?\.(\w+)(\?.+)?#", "$2", $url) . "\n";

}

parseurl('my_style.css');

parseurl('my_style.css?cache=123');

parseurl('/foo/bar/file.js?cache_key=123');

parseurl('/my.dir.name/has/dots/boo.html?cache=123');

输出:

css

css

js

html

标签:php,regex

来源: https://codeday.me/bug/20190528/1172389.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值