'; # echo haz_codigo_youtube($embed); # ej2: # $url = 'http://es.youtube.com/watch?v=xxXxxXxxX'; # echo haz_codigo_youtube($url); # - Para poner varios vídeos, separar urls o códigos embed por comas ############################### function saca_codigo_youtube($url){ //copiado: $qs = parse_url($url); $qs = $qs['query']; parse_str($qs,$vars); return $vars['v']; } function saca_atributos_embed_youtube($embed) { $parsed = parse_html($embed); $atr_embed = $parsed['embed'][0]; array_walk($atr_embed,'trim','"'); if (!empty($atr_embed)) return $atr_embed; else return FALSE; } function saca_url_embed_youtube($embed) { $atr_embed = saca_atributos_embed_youtube($embed); if (!empty($atr_embed['src'])) return trim($atr_embed['src'],'"'); else return FALSE; } function saca_codigo_url_youtube($url){ $qs = parse_url($url); $path = $qs['path']; $qs = strstr ($path,'&'); $dir = rtrim($path,$qs); $codigo = ltrim($dir,'v/'); return $codigo; } function saca_opciones_url_youtube($url){ $qs = parse_url($url); $path = $qs['path']; $qs = strstr($path,'&'); parse_str($qs,$arr); return $arr; } function saca_codigo_embed_youtube($embed){ return saca_codigo_url_youtube(saca_url_embed_youtube($embed)); } function saca_opciones_embed_youtube($embed){ return saca_opciones_url_youtube(saca_url_embed_youtube($embed)); } function parse_html($html){ $i_indicatorL = 0; $i_indicatorR = 0; $s_tagOption = ""; $i_arrayCounter = 0; $s_str = trim($html); $a_html = array(); // Search for a tag in string while( is_int(($i_indicatorL=strpos($s_str,"<",$i_indicatorR))) ) { // Get everything into tag... $i_indicatorL++; $i_indicatorR = strpos($s_str,">", $i_indicatorL); $s_temp = substr($s_str, $i_indicatorL, ($i_indicatorR-$i_indicatorL) ); $a_tag = explode( ' ', $s_temp ); // Here we get the tag's name list( ,$s_tagName,, ) = each($a_tag); //$s_tagName = strtoupper($s_tagName); // Well, I am not interesting in
, or anything else like that... // So, this is false for tags without options. $b_boolOptions = is_array(($s_tagOption=each($a_tag))) && $s_tagOption[1]; if( $b_boolOptions ) { // Without this, we will mess up the array $i_arrayCounter = (int)count($a_html[$s_tagName]); // get the tag options, like src="htt://". Here, s_tagTokOption is 'src' and s_tagTokValue is '"http://"' do { //$s_tagTokOption = strtoupper(strtok($s_tagOption[1], "=")); $s_tagTokOption = strtok($s_tagOption[1], "="); $s_tagTokValue = trim(strtok(""),'"'); //cambiado para funcionar con '=' dentro de un atributo $a_html[$s_tagName][$i_arrayCounter][$s_tagTokOption] = $s_tagTokValue; $b_boolOptions = is_array(($s_tagOption=each($a_tag))) && $s_tagOption[1]; } while( $b_boolOptions ); } } return $a_html; } function haz_codigo_youtube($embed_o_url, $color1=NULL, $color2=NULL, $ancho=NULL, $alto=NULL, $mostrar_relacionados=NULL, $permitir_pantalla_completa=NULL, $poner_borde=NULL, $idioma=NULL){ //miramos si es un embed o un enlace normal: if (strpos($embed_o_url,',')!== FALSE) { $emburls = explode(',',$embed_o_url); } else { $emburls = array($embed_o_url); } $return = ''; foreach($emburls as $embed_o_url) { $qs = ''; if (strpos($embed_o_url,'/watch?')!== FALSE) { $codigo_video = saca_codigo_youtube($embed_o_url); $opciones = saca_opciones_url_youtube($embed_o_url); } else { $atrib = saca_atributos_embed_youtube($embed_o_url); $ancho = is_null($ancho) ? $atrib['width'] : $ancho; $alto = is_null($alto) ? $atrib['height'] : $alto; $codigo_video = saca_codigo_embed_youtube($embed_o_url); $opciones = saca_opciones_embed_youtube($embed_o_url); } if (!is_null($color1)) $opciones['color1'] = "0x".ltrim($color1,"#0x"); if (!is_null($color2)) $opciones['color2'] = "0x".ltrim($color2,"#0x"); if (!is_null($idioma)) $opciones['hl'] = $idioma; if (!is_null($permitir_pantalla_completa)) $opciones['fs'] = $permitir_pantalla_completa; if (!is_null($mostrar_relacionados)) $opciones['rel'] = $mostrar_relacionados; if (!is_null($borde)) $opciones['border'] = $borde; if (is_null($ancho)) $ancho = 425; if (is_null($alto)) $alto = 344; if (!isset($opciones['hl'])) $opciones['hl'] = 'es'; //idioma if (!isset($opciones['fs'])) $opciones['fs'] = 1; //permitir pantalla completa if (!isset($opciones['rel'])) $opciones['rel'] = 0; //mostrar videos relacionados if (!isset($opciones['border'])) $opciones['border'] = 0; //mostrar videos relacionados if (!empty($opciones) && is_array($opciones)) { foreach($opciones as $k => $v) { if (!empty($k)) { $qs.="&{$k}={$v}"; } } } ob_start(); ?> No se puede mostrar el video. php_network_getaddresses: getaddrinfo failed: Name or service not known