[Resolvido] Expressão Regular
Olá amigos do Imasters.
Estou com um problema há muito tempo e depois de pesquisar bastante, resolvi abrir este post.
Preciso pegar um vídeo do Youtube, Vimeo, Videolog ou outras fontes e alterar os valores "width" e "height".
Para isso, criei a seguinte função abaixo
<?php
# You Tube
$codigo_video = '<object width="560" height="340"><param name="movie" value="http://www.youtube.com/watch?v=Q2sInhKqvJI?fs=1&hl=pt_BR"></param><param'>[http://www.youtube.com/watch?v=Q2sInhKqvJI?fs=1&hl=pt_BR"](http://www.youtube.com/watch?v=Q2sInhKqvJI?fs=1&hl=pt_BR)></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="[http://www.youtube.com/watch?v=Q2sInhKqvJI?fs=1&hl=pt_BR"](http://www.youtube.com/watch?v=Q2sInhKqvJI?fs=1&hl=pt_BR) type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object>';
# Pegando a largura e altura do video
preg_match_all('/(width)=("[^"]*")/i',$codigo_video, $result);
$width = trim($result[2][1]);
preg_match_all('/(height)=("[^"]*")/i',$codigo_video, $result);
$height = trim($result[2][1]);
# Substituindo o valor numerico por uma variavel
$codigo_video = str_replace($width, '$largura_video', $codigo_video);
$codigo_video = str_replace($height, '$altura_video', $codigo_video);
?>
A função acima funciona, porém apenas para o YouTube.
Se eu pegar um vídeo do Vimeo, já dá erro, por exemplo.
$codigo_video = '<iframe src="http://player.vimeo.com/video/15081749" width="400" height="225" frameborder="0"></iframe>';
Discussão (7)
Carregando comentários...