Estou a procura de um script para wordpress, mas não encontrei, então resolvi pegar um pronto, para modificar, consegui fazer o mesmo funcionar, mas tem um detalhe que não consegui.
Na faculdade aprendi sobre incremento e decremento, porém nunca utilizei com PHP, e agora que surgiu o problema, pensei comigo mesmo, nossa como dei bobeira.
É o seguinte, o script abaixo, ele funciona da seguinte forma:
Eu insiro um post e coloco o seguinte:
[youtube:http://www.youtube.com/watch?v=l9nUbTC_2UM]
O script pega o endereço digitado, conta os caracteres e insere no codigo do blog o referido video.
|----------------------------------------| <-- Ele descarta essa parte e pega o restante
Ele pega esse trecho do endereço do youtube que é padrão para todos os videos e conta os caracteres, para poder inserir no blog o video que eu postar atraves de chaves.
Até ai tudo bem, ele já esta preparado para funcionar com o Googlevideo e o Youtube.
Mas descobri um site na net, que tem videos, e permite postar em blog, só que não achei script para o mesmo, analisando o codigo abaixo resolvi tentar montar. Consegui, porém não consegui fazer ele pegar o trecho certo do endereço.
Na faculdade programei em C++ e o PHP é parecido.
Se alguem puder me ajudar eu agradeço.
Código original do Script
<?php add_filter('the_content','tube_content'); add_filter('the_content','googlevideo_content'); function tube_content($content) { $regex = '/\[youtube:(.*?)]/i'; preg_match_all( $regex, $content, $matches ); for($x=0; $x<count($matches[0]); $x++) { $parts = explode(" ", $matches[1][$x]); if(count($parts) > 1) { $vid= explode('=',$parts[0],2); $vid = $vid[1]; $width = $parts[1]; if(count($parts) > 2) { $height = $parts[2]; } else { $height = ""; } $replace = '<object class="embed" width="'.$width.'" height="'.$height.'" type="application/x-shockwave-flash" data="http://www.youtube.com/v/'.$vid.'"><param name="movie" value="http://www.youtube.com/v/'.$vid.'" /><param name="wmode" value="transparent" /><em>You need to a flashplayer enabled browser to view this YouTube video</em></object>'; } else { $vid= explode('=',$matches[1][$x]); $vid = $vid[1]; $replace = '<object class="embed" width="425" height="355" type="application/x-shockwave-flash" data="http://www.youtube.com/v/'.$vid.'"><param name="wmode" value="transparent" /><param name="movie" value="http://www.youtube.com/v/'.$vid.'" /><em>You need to a flashplayer enabled browser to view this YouTube video</em></object>'; } $content = str_replace($matches[0][$x], $replace, $content); } return $content; } function googlevideo_content($content) { $regex = '/\[googlevideo:(.*?)]/i'; preg_match_all( $regex, $content, $matches ); for($x=0; $x<count($matches[0]); $x++) { $parts = explode(" ", $matches[1][$x]); if(count($parts) > 1) { $vid= explode('=',$parts[0]); $vid = $vid[1]; $width = $parts[1]; if(count($parts) > 2) { $height = $parts[2]; } else { $height = ""; } $replace = '<object class="embed" width="'.$width.'" height="'.$height.'" type="application/x-shockwave-flash" data="http://video.google.com/googleplayer.swf?docId='.$vid.'"><param name="movie" value="http://video.google.com/googleplayer.swf?docId='.$vid.'" /><em>You need to have flashplayer enabled to watch this Google video</em></object>'; } else { $vid= explode('=',$matches[1][$x]); $vid = $vid[1]; $replace = '<object class="embed" width="425" height="350" type="application/x-shockwave-flash" data="http://video.google.com/googleplayer.swf?docId='.$vid.'"><param name="wmode" value="transparent" /><param name="movie" value="http://video.google.com/googleplayer.swf?docId='.$vid.'" /><em>You need to have flashplayer enabled to watch this Google video</em></object>'; } $content = str_replace($matches[0][$x], $replace, $content); } return $content; } ?>
Novo código sendo modificado para o site redtube.com
<?php add_filter('the_content','redtube_content'); function redtube_content($content) { $regex = '/\[redtube:(.*?)]/i'; preg_match_all( $regex, $content, $matches ); for($x=0; $x<count($matches[0]); $x++) { $parts = explode(" ", $matches[1][$x]); if(count($parts) > 1) { $vid= explode('=',$parts[0]); $vid = $vid[1]; $width = $parts[1]; if(count($parts) > 2) { $height = $parts[2]; } else { $height = ""; } $replace = '<object class="embed" width="'.$width.'" height="'.$height.'" type="application/x-shockwave-flash" data="http://embed.redtube.com/player/?id='.$vid.'&style=redtube"> <param name="movie" value="http://embed.redtube.com/player/?id='.$vid.'&style=redtube" /> <em>Voce nao tem o flashplayer instalado para ver esse video.</em></object>'; } else { $vid= explode('=',$matches[1][$x]); $vid = $vid[1]; $replace = '<object class="embed" width="344" height="434" type="application/x-shockwave-flash" data="http://embed.redtube.com/player/?id='.$vid.'"> <param name="wmode" value="transparent" /> <param name="movie" value="http://embed.redtube.com/player/?id='.$vid.'&style=redtube" /> <em>Voce nao tem o flashplayer instalado para ver esse video.</em></object>'; } $content = str_replace($matches[0][$x], $replace, $content); } return $content; } ?>
add_filter('the_content','redtube_content'); function redtube_content($content) { $regex = '/\[redtube:(.*?)]/i'; preg_match_all( $regex, $content, $matches ); for($x=0; $x<count($matches[0]); $x++) { $parts = explode(" ", $matches[1][$x]); if(count($parts) > 1) { $vid= explode('=',$parts[0]); $vid = $vid[1]; $width = $parts[1]; if(count($parts) > 2) { $height = $parts[2]; } else { $height = ""; }
A parte marcada no fim é a parte responsavel por pegar o endereço.
Segue em anexo os dois scripts
Gostaria que me ajudassem, mas se for possível comentar para que eu possa aprender ficarei grato.
Pois acredito que alguém já deve ter tido essa duvida de como pegar parte de um endereço.
Uma utilidade disso seria ocultar o endereço do site, para ele não mostrar o endereço completo do arquivo onde esta hospedado.
Ou seja, acredito que seja util a todos.
Obrigado
Marcelo Cardoso