Pregunta

Tengo un sitio que permite a los usuarios copiar y pegar el guión de video incrustado que proporciona youtube y subirlo a una base de datos. Quiero poder comprobar que esta secuencia de comandos es una secuencia de comandos válida de YouTube y no solo el texto aleatorio que alguien escribió. Creo que esto se puede hacer con la coincidencia preg. ¿Alguna idea?

¿Fue útil?

Solución

Podrías 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);

pero sería mejor que solo ingresen una URL (que es mucho más fácil de validar y analizar), y generar esto usted mismo.

Otros consejos

Para hacer coincidir las URL:

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

Luego puedes usar el $ videoId para ajustarlo al formato de URL de YouTube que desees.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top