Código complexo YouTube!
08/10/2014
0
URL NO NAVEGADOR
https://www.youtube.com/watch?v=8h8v7tu9118
CÓDIGO DE INCORPORAÇÃO
<iframe width="560" height="315" src="//www.youtube.com/embed/8h8v7tu9118" frameborder="0" allowfullscreen></iframe>
URL DE INCORPORAÇÃO
//www.youtube.com/embed/8h8v7tu9118
Notem a diferença entre URL's
https://www.youtube.com/watch?v=8h8v7tu9118 //www.youtube.com/embed/8h8v7tu9118
a única parte que tem igual é o identificador do vídeo que e este!
8h8v7tu9118
Ele nunca muda e notando isso e fiz o seguinte código.
$video_original = $_POST['video']; $trata_link = array( 'www.youtube.com/watch?v=' => '', 'www.youtube.com/' => '', 'www.youtube.com' => '', '//' => '', 'embed/' => '', '?feature=player_detailpage' => '', 'feature=player_embedded&v=' => '', 'feature=player_profilepage&v=' => '', 'feature=player_detailpage&v=' => '', 'watch?' => '', 'https://' => '' ); $video = strtr($video_original, $trata_link);
isso está funcionando legal quase sem problemas, e meu código php grava as duas variáveis no meu banco que no final saem como!
Resultado final e gravado no Banco de dados!
$video_original = 'https://www.youtube.com/watch?v=8h8v7tu9118'; $video = '8h8v7tu9118';
então quando exibido o artigo eu chamo a variável $video com esse código.
<iframe src='//www.youtube.com/embed/$video?feature=player_detailpage' class='you' frameborder='0' allowfullscreen></iframe>
Notem que no local que vem o código eu utilizei a variável vídeo com o código ou identificador do vídeo e assim ta beleza, funcionando! o único problema é que algumas URLs ainda fogem desses padrões que estabeleci para que seja substituindo por
''
Cleyton Caetano
Posts
08/10/2014
Ronaldo Lanhellas
10/10/2014
Cleyton Caetano
mas nem sempre segue esse padrão, olhe..
http://youtu.be/lEfr5nPnB1g
https://www.youtube.com/watch?v=lEfr5nPnB1g&feature=player_detailpage
//www.youtube.com/embed/lEfr5nPnB1g
10/10/2014
Fabiano Carvalho
Pode tentar utilizando RegExp
10/10/2014
Cleyton Caetano
Pode tentar utilizando RegExp
Já estou fazendo isso! veja neste exemplo!
$video_original = $_POST['video']; $trata_link = array( 'www.youtube.com/watch?v=' => '', 'www.youtube.com/' => '', 'www.youtube.com' => '', '//' => '', 'embed/' => '', '?feature=player_detailpage' => '', 'feature=player_embedded&v=' => '', 'feature=player_profilepage&v=' => '', 'feature=player_detailpage&v=' => '', 'watch?' => '', 'https://' => '' ); $video = strtr($video_original, $trata_link);
e mesmo retirando todos esses padrões já listados ainda assim me deparo hora ou outra com uma URL fora dos meus padrões!
10/10/2014
Fabiano Carvalho
Acredito que será mais "automático" isso, ao invés de informar os padrões que sua aplicação suporta.
11/10/2014
Ronaldo Lanhellas
mas nem sempre segue esse padrão, olhe..
http://youtu.be/lEfr5nPnB1g
https://www.youtube.com/watch?v=lEfr5nPnB1g&feature=player_detailpage
//www.youtube.com/embed/lEfr5nPnB1g
Regex é uma boa pedida mas se você não sabe quais padrões suportados então regex também não adianta. Enfim, a melhor opção é você ver quais os padrões utilizados e definir casos de tratamento para cada um.
12/10/2014
Cleyton Caetano
mas nem sempre segue esse padrão, olhe..
http://youtu.be/lEfr5nPnB1g
https://www.youtube.com/watch?v=lEfr5nPnB1g&feature=player_detailpage
//www.youtube.com/embed/lEfr5nPnB1g
Regex é uma boa pedida mas se você não sabe quais padrões suportados então regex também não adianta. Enfim, a melhor opção é você ver quais os padrões utilizados e definir casos de tratamento para cada um.
Acho que no final de tudo essa vai ser a solução mesmo! :D
Clique aqui para fazer login e interagir na Comunidade :)