Bueno, de entrada, los iframes no son lo mas adecuado para mostrar videos de youtube, hay formas de integrarlos directamente en tus paginas y que aparezca solo el reproductor, ejemplo:
Código HTML:
Ver original<object width="480" height="385"> <param name="movie" value="http://www.youtube.com/v/Gukt3u1nh9Y=es&fs=1"></param> <param name="allowFullScreen" value="true"></param> <param name="allowscriptaccess" value="always"></param> <embed src="http://www.youtube.com/v/Gukt3u1nh9Y=es&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed>
Esta opcion no pasa el validator de la w3c, pero funciona bien en la mayoria de navegadores.
Otra cosa, str_replace() no es tampoco lo mas adecuado para usar en bbcodes, a menos que solo sea para iconos gestuales (
) y, de todos modos, no debe aplicarse directamente, hay que evitar reemplazos en codigo, como aqui:
Luego, podrias simplificar tu etiqueta para poner algo como
[youtube]Gukt3u1nh9Y
[/youtube] y el reemplazo lo haces con preg_replace(), algo como:
Código PHP:
Ver original$buscar = '#\[youtube\]([^\[]*?)\[/youtube\]#';
$reemplazar = '<object bla bla bla><parama name="movie" value="$1"></param></object>';
En este ejemplo no esta completo el reemplazo solo adaptalo, recordando que en
$1 estara la ID del video.
Funciona?, no se, no lo he probado, pero ya nos diras cuando lo pruebes.