Pergunta

Eu tenho um site que permite aos usuários copiar e colar o script de vídeo embeded que youtube fornece e enviá-lo para um banco de dados. Eu quero ser capaz de verificar que este script é um script youtube válido e não apenas texto aleatório que alguém digitou. Eu acredito que isso pode ser feito com jogo preg. Alguma idéia?

Foi útil?

Solução

Você pode usar:

preg_match('/^<object (?<width_height>width="[[:digit:]]+" height="[[:digit:]]+")><param name="movie" value=(?<url>"http:\/\/www.youtube.com\/v\/[^&]+&hl=[[:alpha:]]{2}&fs=1")><\/param><param name="allowFullScreen" value="true"><\/param><param name="(?<asa>allowscriptaccess)" value="always"><\/param><embed src=(?P=url) type="application\/x-shockwave-flash" (?P=asa)="always" allowfullscreen="true" (?P=width_height)><\/embed><\/object>$/', $yt);

mas seria melhor apenas para tê-los entrar em um URL (que é muito mais fácil para validar e parse), e gerar isso sozinho.

Outras dicas

Para corresponder URLs:

$pattern = '/.*youtube.*(v=|\/v\/)([^&\/]*).*/i';
preg_match($pattern, $video, $matches)
$videoId = $matches[2];

Você pode então usar o $videoId para embrulhar em qualquer formato YouTube URL que você deseja.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top