2010-03-10 5 views
1

YouTube가 제공하는 YouTube 내장 코드를 가져 와서 정규 표현식을 사용하여 유효한 FBML 코드로 변환하는 방법, 즉 fb:swf 태그를 사용 하시겠습니까?YouTube 내장 코드를 구문 분석하는 정규 표현식

지금까지 내가 함께 왔어요 정규 표현식은 다음과 같습니다

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

나는 절름발이 알고 있지만, 내 첫 번째 시도입니다.

PS : YouTube 내장 코드 샘플,

<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> 
+1

어떤 결과가 주어진 샘플해야 – codaddict

+0

당신이 방법을 요구하는지 가정합니다.? 퍼가기 코드에서 비디오 URL을 수집하면 원하는대로 원하는대로 만들 수 있습니다. – Marcelo

+0

http : // stackoverf low.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 –

답변

-2

을, 당신은 당신이 당신의 일을하고 당신이 그것으로 원하는대로 얻을 후 임베디드 코드에서 동영상 URL을 수집하고자합니다.

삽입 코드 전체 (소스 및 값)에 URL이 두 개이고 URL에 따옴표가 없다고 가정하면 (적어도 YouTube는 아님) 정규식을 사용하면 URL을 얻을 수 있습니다.

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

설명 : 견적이있을 때까지로 precceeded되지 http 'SRC = "'받고 있습니다

0

나는이 단지 다른 일해야했다. 저는 여기에 문자열/입력에 클립 아이디의를 얻을 수 및 배열에 넣어 쓴 함수입니다 (이 할 수 있습니다 귀하의 포함 된 개체로 삽입) : 다음

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

print_r($yt_ids); 

및 동적 타이틀을 얻을 필요가있는 경우 : 지금까지 내가 말 그대로

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; 
}