YouTube gömülü kodu ayrıştırmak için normal ifade

2 Cevap php

Nasıl YouTube sağlayan YouTube gömülü kodu almak ve bu fb:swf etiketini kullanın, olan, geçerli FBML koduna dönüştürmek için normal bir ifade kullanabilir?

Şimdiye kadar ben geldim düzenli ifadedir:

preg_replace('/<object(.*)<\/object>/i', "Whatever I need here...", $str);

Ben topal olduğunu biliyorum, ama bu benim ilk deneme.

PS: YouTube gömülü kod örnek,

<object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/NWHfY_lvKIQ&hl=en_GB&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/NWHfY_lvKIQ&hl=en_GB&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object>

2 Cevap

Bildiğim kadarıyla ben anladım, sen gömülü kodundan video URL toplamak ve sonra da bir şey yapmak ve onunla istediğiniz ne olursa olsun almak istiyorum.

Sadece tüm gömülü kodu (kaynak ve değer) ve URL (en azından YouTube sitesini) Ben URL almak için kullanmak istiyorum ifadedir hiçbir tırnak vardır ki iki URL'ler orada olacağını varsayarak:

[^(src=")]http.*[^"]

Açıklama: http bir alıntı vardır kadar var olduğunu 'src = "' tarafından precceeded değildir.

Ben sadece diğer gün bunu yapmak zorunda. Burada bir dize / giriş klibi id almak ve bir dizi (gömülü nesne içine hangi ekleme yapabilirsiniz) içine koymak için yazdığı bir fonksiyon:

preg_match_all('/\/vi?\/([A-Za-z0-9\+_-]+)/i', $str_containing_yt_ids, $yt_ids);

o zaman

print_r($yt_ids);

ve dinamik başlıkları almak gerekir:

function get_yt_title($clip_id){
    $feedURL = 'http://gdata.youtube.com/feeds/api/videos/' . $clip_id;
    $entry = simplexml_load_file($feedURL);
    $video= new stdClass;
    $media = $entry->children('http://search.yahoo.com/mrss/');
    $video->title = ucwords(strtolower($media->group->title));
    return $video->title;
}