2013-12-12 4 views
0

저는 이것을 Wordpress에서 시도하고 있습니다. 삽입 할 YouTube의 URL을 변환하는 데 성공했지만, URL이 포함되어 있는지 먼저 확인한 다음 그 다음뿐만 아니라이 임베드로 변환 할 필요가있는 경우, 변환 부분이, 다 내 문제는 내가 비교하는 방법을 모르는 것입니다, 나는 노력이 :URL이 패턴과 일치하는지 확인합니다.

$video = $user_details->get('embed_code'); 
      $search  = '#(.*?)(?:href="https?://)?(?:www\.)?(?:youtu\.be/|youtube\.com(?:/embed/|/v/|/watch?.*?v=))([\w\-]{10,12}).*#x'; 
      $replace = 'http://www.youtube.com/embed/$2'; 

      if(!preg_match($search,$video)){ 
      $url_video = preg_replace($search,$replace,$video); 
      $url_final = '<iframe width="560" height="315" src="'.$url_video.'" frameborder="0" allowfullscreen></iframe>'; 
} 

<div class="youtube_cls"> 
    <?php echo $url_final; ?> 
    </div> 

그래서 난 preg_match를 사용하려고 해요 그러나 그것이 작동하지 않는다면 어떻게 생각합니까? $video$search과 같은 형식 인 경우이를 비교하고 YES라면 그대로 둡니다.

+0

샷을 'preg_match'에게줍니다. 일치하는 경우 true를, 그렇지 않으면 false를 반환합니다. – brandonscript

+0

내가 했어, 위의 코드는 작동하지만 ... – Liza

+0

그건 내가주의를 기울이지 않기 위해 얻는 것이다. 좋습니다. $ 비디오 URL 샘플을 제공해 주시겠습니까? – brandonscript

답변

1

코드가 실제로 작동합니다. 일치하지 않는 경우 $url_final이 설정되지 않습니다.

$video에 대한 설명을 바꿔 넣으면 $url_final에 제대로 표시됩니다.

$video = "http://www.youtube.com/watch?v=XUdt_aBmkwo"; 
//$video = '<iframe width="560" height="315" src="//www.youtube.com/embed/XUdt_aBmkwo" frameborder="0" allowfullscreen></iframe>'; 
$search = '#(.*?)(?:href="https?://)?(?:www\.)?(?:youtu\.be/|youtube\.com(?:/embed/|/v/|/watch?.*?v=))([\w\-]{10,12}).*#x'; 
$replace = 'http://www.youtube.com/embed/$2'; 
$url_final = $video; //set $url_final to $video so if !preg_match, it still returns 

if(!preg_match($search,$video)) 
{ 
    $url_video = preg_replace($search,$replace,$video); 
    $url_final = '<iframe width="560" height="315" src="'.$url_video.'" frameborder="0" allowfullscreen></iframe>'; 
} 

echo $url_final; 
+0

알겠습니다. 고마워요! +1 – Liza

관련 문제