2012-03-12 4 views
2

문자열에 특정 도메인에 대한 URL이 포함되어 있고 새 문자열로 저장하는 경우 PHP를 확인하고 싶습니다.문자열에 youtube URL이 포함되어 있는지 확인하십시오.

예 :

는 이제 새로운 문자열 값 "http://www.youtube.com/?123을"해야 "여기 http://www.youtube.com/?123 내 최신 동영상을 확인".

예제에 다른 링크가 있지만 youtube에서 링크가없는 경우 문자열에는 여전히 YouTube 값만 포함되어 있어야합니다. 여기서 예 함수 fnmatch

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

정확히 더 유튜브 URL이 발견되지 않은 경우 유튜브가 새 문자열에서 원하는 url로 결정 어떻게 원래? –

+1

가능한 [PHP의 텍스트에서 URL 추출] (0120-555-505) –

+0

당신은 이미이 답변을 가지고 있습니다. 여기를 체크 아웃 : http://stackoverflow.com/questions/3392993/php-regex-to-get-youtube-video-id –

답변

0

특정 도메인은 "youtube.com"입니다

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

링크가 다음과 같이 표시되면 작동하지 않는 것 같습니다. here user1264272

+0

youtube.com에 대한 유효한 링크가 아니기 때문에 문제가 없습니다. 앞에 "http : //"가 있어야합니다. 그렇지 않으면 현재 도메인의 내부 링크처럼 해석됩니다. 브라우저에서 사용해보십시오. – Leif

+0

안녕하세요, 나는 그것이 작동하지만, 링크에 "www"가있을 때만 나타납니다. 방금 다른 문제를 깨달았습니다. 때로는 문자열에 하나 이상의 YouTube 링크가 있지만 preg_match는 첫 번째 문자열 만 찾습니다. 어떻게 코딩 할 수 있습니까? – user1264272

0

PHP가 붙박이 기능을 갖는다.

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

이 함수는 작성 방법에 관계없이 www와 함께 (또는 상관없이) HTTP 및 HTTPS와 함께 작동해야합니다.

문자열 $ URL의 시작 부분에 URL이 없으면 ^을 제거 할 수 있습니다. 다음 예제

2

이다

+0

난이 오류 메시지가 얻을 : 경고 :는 preg_match를() 함수를 .preg-match] : delimiter는 라인 5의 /home/.sites/123/site602/web/feeds/index.php에 영숫자 또는 백 슬래시가되어서는 안됩니다. 링크가 다음과 같이 표시되면이 작업이 가능합니다 here user1264272

+0

내 실수 @ user1264272, 이제는 작동해야합니다, 나는 구분 기호로 사용합니다 ** # **. – Rolice

0

이 임베디드 비디오와 문자열에 유튜브 링크를 대체하는 내 자신의 기능입니다 :에

(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;      
        }      
       } 
관련 문제