Foros del Web » Programando para Internet » PHP »

solo veo codigo fuente

Estas en el tema de solo veo codigo fuente en el foro de PHP en Foros del Web. Hola amigos, he estado a punto de un paro cardiaco con mi primer encuentro con php, puff, a ver. he querido sacar el embed u ...
  #1 (permalink)  
Antiguo 28/12/2009, 20:54
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Exclamación solo veo codigo fuente

Hola amigos, he estado a punto de un paro cardiaco con mi primer encuentro con php, puff, a ver.

he querido sacar el embed u object de una pagina de este modo teniendo solamente su url

Código PHP:
Ver original
  1. <?php
  2. //con esto llamo la url del navegador
  3. $url=$_GET['url'];
  4. //esto imprime el codigo fuente
  5. function getSource($host,$page) {
  6. $archivo = file("http://$host/$page");
  7. reset ($archivo);
  8. while (list ($clave, $val) = each ($archivo)) {
  9. echo htmlentities($val).'<br>';
  10. }}
  11. getSource("megavideo.com","$url");
  12.  
  13. //y esto debería sacar lo que esta entre las etiquetas object
  14. $html='htmlentities($val)';
  15.  
  16. $parser='|<object (.*?)object>|is';
  17.  
  18.      
  19. if(preg_match($parser, $html, $embed1))
  20. {
  21. $embed=$embed.$embed1[1];                  
  22. }
  23.  
  24. echo '<object  '.$embed.' object>';
  25.  
  26. ?>

pero lo único que consigo es ver el código fuente, por separado si funcionan las expresiones, ¿alguien me puede decir que hago mal? no conozco este lenguaje, lo empeze hace 3 días y creo que esto es mucho para mi.

gracias por su ayuda.
  #2 (permalink)  
Antiguo 28/12/2009, 21:27
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: solo veo codigo fuente

tu expresión contempla caracteres de HTML puros... y tu, al emplear htmlentities() escapas dichos caracteres haciendo inútil la susodicha...

para todo... hay una excepción, okey, no es tan complejo...
Código PHP:
<?php 
//con esto llamo la url del navegador ... OK
$url=$_GET['url'];

//esto imprime el codigo fuente ... OK
function getSource($host,$page) { 
  
$archivo file("http://$host/$page"); 
  
// reset ($archivo); // esto no es necesario ... OK

  // en este punto no debes imprimir el resultado...
  // mas bien, debes devolverlo para poder usarlo fuera

  
$out '';
  while (list (
$clave$val) = each ($archivo)) { 
    
// llegado a este punto, debes concatenar las lineas
    // del archivo en tu varible de salida (previamente declarada)
    
$out .= $val;
    
// echo htmlentities($val).'<br>'; // esto no es necesario ... OK
  
}
  return 
$out;


// ahora obtenemos el codigo generado de la pagina
$source getSource("megavideo.com","$url");

// esto definitivamente un error, te sugiero releer e investigar mas 
//y esto debería sacar lo que esta entre las etiquetas object
// $html='htmlentities($val)';

// significa: el reemplazo debe obtener solo la primer captura
$html '\\1';
 
$parser='|<object (.*?)object>|is';  // ... OK
 
     // siempre hay que declarar nuestras variables
$embed '';
if (
preg_match($parser$html$embed1)) 

  
$embed $embed1[1]; // no es necesario concatenar                  


echo 
'<object  '.$embed.' object>'// ... ??? 
?>
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Última edición por pateketrueke; 28/12/2009 a las 21:35 Razón: dialectica
  #3 (permalink)  
Antiguo 29/12/2009, 02:24
 
Fecha de Ingreso: enero-2005
Mensajes: 386
Antigüedad: 19 años, 3 meses
Puntos: 3
Respuesta: solo veo codigo fuente

Hola estaba viendo el ejemplo que pusiste paketetrueke pero hay una parte que no le entendi. lo trate de correr por que quiero hacer yo algo parecido pero para otra cosa laparte en negrita no le entendi. ahi lo que se supone es que abre la web y debe de buscar dentro del codigo fuente las etiquetas object? para sacar lo que esta entre ellas?

<?php
//con esto llamo la url del navegador ... OK
$url="?v=TS8605RB";

//esto imprime el codigo fuente ... OK
function getSource($host,$page) {
$archivo = file("http://$host/$page");
// reset ($archivo); // esto no es necesario ... OK

// en este punto no debes imprimir el resultado...
// mas bien, debes devolverlo para poder usarlo fuera

$out = '';
while (list ($clave, $val) = each ($archivo)) {
// llegado a este punto, debes concatenar las lineas
// del archivo en tu varible de salida (previamente declarada)
$out .= $val;
// echo htmlentities($val).'<br>'; // esto no es necesario ... OK
}
return $out;
}

// ahora obtenemos el codigo generado de la pagina
$source = getSource("megavideo.com","$url");

// esto definitivamente un error, te sugiero releer e investigar mas
//y esto debería sacar lo que esta entre las etiquetas object
// $html='htmlentities($val)';

// significa: el reemplazo debe obtener solo la primer captura
$html = '\\1';
$parser='|<object (.*?)object>|is'; // ... OK

// siempre hay que declarar nuestras variables
$embed = '';
if (preg_match($parser, $html, $embed1))
{
$embed = $embed1[1]; // no es necesario concatenar
}

echo '<object '.$embed.' object>'; // ... ???
?>
  #4 (permalink)  
Antiguo 29/12/2009, 04:29
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Respuesta: solo veo codigo fuente

la primera parte del codigo es una funcion que te devuelve el código de la web.
Luego se llama a la función:
Código PHP:
$source getSource("megavideo.com","$url"); 
y después se "trabaja" el código generado para obtener lo que se desea..

Código PHP:
// $html='htmlentities($val)';

// significa: el reemplazo debe obtener solo la primer captura
$html '\\1';
$parser='|<object (.*?)object>|is'// ... OK

// siempre hay que declarar nuestras variables
$embed '';
if (
preg_match($parser$html$embed1))
{
$embed $embed1[1]; // no es necesario concatenar
}

echo 
'<object '.$embed.' object>'// ... ??? 
ésto ultimo puede variar dependiendo que es lo que quieres lograr.


Saludos.
  #5 (permalink)  
Antiguo 29/12/2009, 11:38
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: solo veo codigo fuente

muchas gracias señor pateke:

estudiaré más de hecho lo hago, por que, aún le falta a ese código.

como el valor de

Código PHP:
 $out ''
y el de

Código PHP:
$embed ''
¿no es así?

ahora.

a esta parte

Código PHP:
echo '<object '.$embed.' object>'// ... ??? 
no entendí lo del comentario. ¿esta mal?

la idea es que se imprima el embed dentro de object, pero como dije estoy muy pollo, seguiré buscando información, por cierto el
$html='htmlentities($val)';
no me referia a que eso sacara las etiquetas, eso es obvio, solo me referia a esa parte en general.
gracias por ordenarme el código señor, seguro ya pronto lo acabo.

  #6 (permalink)  
Antiguo 29/12/2009, 11:46
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: solo veo codigo fuente

el... ??? significa algo así como "y veamos que sucede..."

osea, solo falta que pruebes...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 29/12/2009, 12:02
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: solo veo codigo fuente

ahh ok , bueno pues el codigo asi como usted lo dejo no funciona, jajaja pero como dije creo que faltan los valores que se le asignan a:

$out = '';


$embed = '';

bueno eso digo yo, quien sabe, veremos que sale.
  #8 (permalink)  
Antiguo 29/12/2009, 12:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: solo veo codigo fuente

de echo lo que esta mal es la función preg_match(), pero sus argumentos...

debería ser algo así
Código PHP:
$url $_GET['url'];

function 
getSource($host,$page) { 
  
$archivo file("http://$host/$page"); 
  
$out '';
  while (list (
$clave$val) = each ($archivo)) { 
    
$out .= $val;
  }
  return 
$out;


$source getSource("megavideo.com","$url");
$parser='|<object (.*?)object>|is';  // ... OK

$embed '';
if (
preg_match($parser$source$embed1)) 

  
$embed $embed1[1];

echo 
'<object  '.$embed.' object>'
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 29/12/2009, 12:43
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: solo veo codigo fuente

Aleluya¡¡¡ aleluya¡¡¡ lo logre?
nah que va fue usted señor pateke

por fin se ha logrado, es usted un master, algun dia seré así de bueno esto del php me ha encantado.

es un dolor en las muelas pero me ha encantado.

Gracias señor, por ayudarme tanto.
  #10 (permalink)  
Antiguo 29/12/2009, 21:39
 
Fecha de Ingreso: enero-2005
Mensajes: 386
Antigüedad: 19 años, 3 meses
Puntos: 3
Respuesta: solo veo codigo fuente

Muchas Gracias :D a mi tmb me funciono :D
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:42.