检查字符串是否包含youtube URL

时间:2012-03-12 14:10:27

标签: php url hyperlink

我想检查PHP,如果字符串包含指向特定域的URL并将其保存在新字符串中。

示例:"在此处查看我的最新视频http://www.youtube.com/?123"

所以现在新字符串的值应为" http://www.youtube.com/?123"。

如果示例中有其他链接,但不是来自youtube,则该字符串仍应仅包含youtube值。

4 个答案:

答案 0 :(得分:2)

这是示例函数。

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

此功能应该与HTTP和HTTPS一起使用,无论是否有www(无关紧要)如何编写。

如果您不希望字符串$ url开头的网址可以删除 ^

答案 1 :(得分:0)

PHP有一个内置函数: fnmatch

fnmatch('* http://www.youtube.com/* *', string) should probably work.

答案 2 :(得分:0)

以下示例中的特定域名为“youtube.com”

$sText =  "Check out my latest video here http://www.youtube.com/?123";
preg_match_all('@https?://(www\.)?youtube.com/.[^\s.,"\']+@i', $sText, $aMatches);
var_dump($aMatches);

答案 3 :(得分:0)

这是我自己的功能,用嵌入的视频替换字符串上的youtube链接:

(关于wordpress格式的youtube视频:[youtube = http://www.youtube.com/watch?v = zuqoGJ4Y5NM])

                function youtube($volcado) {                        
                    if( ereg('\[youtube=',$volcado) ) {
                       //YOUTUBE CODE   
                       $posicion=stripos($volcado,"[youtube=");
                       $volcado1=substr($volcado,0,$posicion);
                       $posicion=$posicion+9;
                       $volcadotemp=substr($volcado,$posicion,strlen($volcado)-$posicion);
                       $posicion2=strpos($volcadotemp,"]");
                       $enlace_video=substr($volcadotemp,0,$posicion2);
                       $volcado2=substr($volcadotemp,$posicion2+1,strlen($volcadotemp)-$posicion2-1);
                       $posvideo=stripos($enlace_video,"watch?v=");
                       $codigo_video=substr($enlace_video,$posvideo+8,strlen($enlace_video)-1);
                       $enlace_video="http://www.youtube.com/v/".$codigo_video;
                       $codigo_video="<br><object width=\"425\" height=\"350\"><param name=\"movie\" value=\"".$enlace_video."\"></param><embed src=\"".$enlace_video."\" type=\"application/x-shockwave-flash\" width=\"425\" height=\"350\"></embed></object><br>";
                       return $volcado1.$codigo_video.youtube($volcado2);
                       //FIN DE YOUTUBE CODE
                    } else {
                       return $volcado;                     
                    }                       
                }