我正在尝试获取在线视频及其描述。 youtube和其他几个提供api访问的工作正常。对于网站的其余部分,我将使用oEmbed。 所以,对于youtube,如果模式匹配:
/^http:\/\/(www\.)?youtube.com\/watch/
然后,它将使用“yt自定义服务”来获取内容。
对于网站的其余部分,将使用oEmbed服务:
preg_match_all('`.*?((http|https)://[\w#$&+,\/:;=?@.-]+)[^\w#$&+,\/:;=?@.-]*?`i', $content, $matches);
那么,如何从这个match_all模式中排除youtube和其他几个?
答案 0 :(得分:0)
正如@Dan所说,最好的方法是使用if句子,其他方式来写:
if (strpos($url, 'youtube.com')===false) {
// use "yt custom service"
} else {
// use "oEmbed"
}
我建议在没有必要时避免使用正则表达式。它们有时只会增加复杂性。