php - 在这种情况下,哪个更适合匹配正则表达式或 parse_url

标签 php regex parsing

<分区>

假设我们有以下链接

$link = "http://www.mysite.com/bbbbbbb.flv?something";

我们想要匹配它。

关于这个问题how to match links that has extension @谢谢大家@ 我们有两种方式正则表达式parse_url

那么我的问题是,从您的角度和对我的网站来说哪个更好(例如更快更好更准确..等)?

方法一 正则表达式

if (preg_match('/\.flv(\?|$)/i', $link)) {
    echo 'It has flv';
} else {
    echo 'It does not have';
}

方法二 parse_url

$arr = parse_url($link);

$pathParts = pathinfo($arr['path']);

if ($pathParts['extension'] == 'flv')
   echo "valid extension";
else
   echo "invalid extension";

@谢谢

最佳答案

根据 this publication ,使用内置的 parse_urlpreg_match 慢得多。这是可以理解的情况,因为正则表达式捕获单个结果,而 parse_url 捕获并解析 url 的所有组件。

关于php - 在这种情况下,哪个更适合匹配正则表达式或 parse_url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20248666/

相关文章:

C# 正则表达式数组的子表达式?

python - 用于查找首字母缩略词并避免由该模式组成的单词的正则表达式

java - 如何用正则表达式解析字符串?

php - MYSQL Order BY "entry"DESC 不显示最高

php - 通过选项卡更新补贴

javascript - PHP生成的Js函数调用是用换行符创建的

javascript - XML 和 PHP - 如果节点存在,则覆盖数据,如果不存在,则创建一个新节点

regex - Java 8 Matcher 说有匹配项,但 groupCount 为 0

Python参数不带$符号,如何实现?

javascript - 以解析的形式将 BBCode 插入 CKEditor