如何从URL模式中排除某些域?

时间:2011-07-19 02:25:15

标签: php url pattern-matching

我正在尝试获取在线视频及其描述。 youtube和其他几个提供api访问的工作正常。对于网站的其余部分,我将使用oEmbed。 所以,对于youtube,如果模式匹配:

/^http:\/\/(www\.)?youtube.com\/watch/

然后,它将使用“yt自定义服务”来获取内容。

对于网站的其余部分,将使用oEmbed服务:

preg_match_all('`.*?((http|https)://[\w#$&+,\/:;=?@.-]+)[^\w#$&+,\/:;=?@.-]*?`i', $content, $matches);

那么,如何从这个match_all模式中排除youtube和其他几个?

1 个答案:

答案 0 :(得分:0)

正如@Dan所说,最好的方法是使用if句子,其他方式来写:

if (strpos($url, 'youtube.com')===false) {
// use "yt custom service"
} else {
// use "oEmbed"
}

我建议在没有必要时避免使用正则表达式。它们有时只会增加复杂性。