0

到目前为止我尝试过的是这个功能:

function isYoutubeUrl($url) {
    return preg_match("#^https?://(?:www\.)?youtube.com#", $url);
}

但它只适用于这样的普通 youtube 字符串:

$string = 'http://www.youtube.com/watch?v=bJIXm6U4df';
$newString = isYoutubeURL($string);
if($newString); // true

我需要一个函数来检查 youtube URL 的字符串,如果有,则返回 url。

$string = 'this is so crazy...http://www.youtube.com/watch?v=bJIXm6U4df';
$newString = extractYoutubeUrl($string);
echo $newString; // http://www.youtube.com/watch?v=bJIXm6U4df

任何的想法?

4

2 回答 2

2

^ - 从字符串的开头检查 - 删除它并尝试

return preg_match("#https?://(?:www.)?youtube.com#", $url);

这将是你的功能:

function extractYoutubeUrl($url) {
    return preg_match("#https?://(?:www\.)?youtube.com#", $url);
}
于 2013-01-11T11:47:33.533 回答
0

试试这个

function extractYoutubeUrl($url) {
  if(preg_match("#(http://www\.youtube\.com/watch\?v=[%&=#\w-]*)#", $url, $result))
    return $result[0];
  return null;
}
于 2013-01-11T12:05:47.637 回答