Bir url olmadığını kontrol etmek için herhangi bir preg_match youtube / vimeo / dailymotion video bağlantısı nedir?

3 Cevap php

Bir url youtube / vimeo / veya dailymotion video bağlantı olup olmadığını kontrol etmek için en iyi preg_match sözdizimi nedir?

çok zor belki, sonra sadece alan adını kontrol etmek.

Teşekkürler

3 Cevap

Bunun için preg_match() kullanmak olmaz. I parse_url() muhtemelen daha iyi bir seçim olduğunu düşünüyorum. Bunu içine bir URL dizesi geçebilir, ve sizin için tüm alt bileşenleri içine yıkmak olacaktır.

Bilmiyorum ne gibi bir görünüm söz konusu, ama ben size parse_url() kadar sonuçları ile kullanabilirsiniz, her biri için bazı kriterler belirlenmesi ile gelip eminim bu siteler için özel video URL'leri tanımlamak. Örneğin, burada bir YouTube bağlantı dökümü gibi görünebilir ne:

$res = parse_url("http://www.youtube.com/watch?v=Sv5iEK-IEzw");
print_r($res);

/* outputs: 
Array (
    [scheme] => http
    [host] => www.youtube.com
    [path] => /watch
    [query] => v=Sv5iEK-IEzw
)
*/

Muhtemelen ana bilgisayar adı ve bu durumda yol dayalı olarak tanımlayabilir.

$location = 'your url';

if(preg_match('/http:\/\/www\.youtube\.com\/watch\?v=[^&]+/', $location, $vresult)) {

          $type= 'youtube';

      } elseif(preg_match('/http:\/\/(.*?)blip\.tv\/file\/[0-9]+/', $location, $vresult)) {


          $type= 'bliptv';

      } elseif(preg_match('/http:\/\/(.*?)break\.com\/(.*?)\/(.*?)\.html/', $location, $vresult)) {

          $type= 'break';

      } elseif(preg_match('/http:\/\/www\.metacafe\.com\/watch\/(.*?)\/(.*?)\//', $location, $vresult)) {

          $type= 'metacafe';

      } elseif(preg_match('/http:\/\/video\.google\.com\/videoplay\?docid=[^&]+/', $location, $vresult)) {

          $type= 'google';

      } elseif(preg_match('/http:\/\/www\.dailymotion\.com\/video\/+/', $location, $vresult)) {

          $type= 'dailymotion';

      }

Bunu url almak nasıl bilmiyorum, ama youtube video bağlantılar genellikle izle? Şey olarak yolunu beri (yerine sadece www.youtube.com yorum "izlemek" için kontrol etmek isteyebilirsiniz.

$res = parse_url("http://www.youtube.com/watch?v=Sv5iEK-IEzw");
if ( preg_match( "/\/watch/" , $res["path"]  ) ){
    echo "found video\n ";
}