Foros del Web » Programando para Internet » PHP »

Eliminar parte del código fuente obtenido

Estas en el tema de Eliminar parte del código fuente obtenido en el foro de PHP en Foros del Web. Buenas, Hago esto: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original $var = file_get_contents ( "urlobtengo" ) ; El código fuente de la URL que estoy obteniendo ...
  #1 (permalink)  
Antiguo 11/01/2013, 13:52
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 9 meses
Puntos: 5
Exclamación Eliminar parte del código fuente obtenido

Buenas,

Hago esto:

Código PHP:
Ver original
  1. $var = file_get_contents("urlobtengo");

El código fuente de la URL que estoy obteniendo es este:

Código HTML:
Ver original
  1. body { font-family: verdana; font-size: 12 }
  2. table { font-family: verdana; font-size: 12; border-collapse:collapse }
  3. td { font-family: verdana; font-size: 12; border:solid black 0.1pt; padding:3pt }
  4. <title>RouteFinder - LEMD - LEBL - Not for real world navigation</title>
  5. </head>
  6. <font size=+1 color=#0000FF><a href=./><b>RouteFinder</b></a></font><br><i>Route generator for PC flight simulation use - <b>NOT FOR REAL WORLD NAVIGATION</b></i><br>
  7. (C)2005-2007 ASA srl - Italy
  8. <hr>
  9. Computed route from <b>MADRID/BARAJAS</b> (LEMD, LE) to <b>BARCELONA/EL PRAT</b> (LEBL, LE): 8 fixes, 267.6 nautical miles<br><br><tt>Cruise altitude between FL330 and FL330<br> <b>LEMD</b> (0.0nm) -SID->   <b>PINAR</b> (53.3nm) -UN870->  <b>SEGRE</b> (63.7nm) -UN870-> <br> <b>BRITO</b> (77.7nm) -UN870->  <b>PISUS</b> (106.7nm) -UN870->  <b>PONEN</b> (148.7nm) -UT600-> <br> <b>CASPE</b> (182.8nm) -STAR->  <b>LEBL</b> (267.6nm)         </tt></p>Details:<hr><p><pre>ID      FREQ   TRK   DIST   Coords                       Name/Remarks
  10. LEMD             0      0   N40&deg;28'20.00" W003&deg;33'39.00" MADRID/BARAJAS
  11. PINAR           55     53   N40&deg;58'49.06" W002&deg;35'56.99" PINAR
  12. SEGRE           76     10   N41&deg;01'22.18" W002&deg;22'35.27" SEGRE
  13. BRITO           76     14   N41&deg;04'44.65" W002&deg;04'40.88" BRITO
  14. PISUS           76     29   N41&deg;11'37.20" W001&deg;27'18.00" PISUS
  15. PONEN           76     42   N41&deg;21'14.00" W000&deg;32'51.41" PONEN
  16. CASPE           98     34   N41&deg;16'06.42" E000&deg;11'57.78" CASPE
  17. LEBL            88     85   N41&deg;17'49.00" E002&deg;04'42.00" BARCELONA/EL PRAT
  18. </pre></p>Tracks are magnetic, distances are in nautical miles.<hr>
  19. <tt><b>LEMD</b> SID <b>PINAR</b> UN870 <b>PONEN</b> UT600 <b>CASPE</b> STAR <b>LEBL</b></tt>
  20. <hr>
  21. <a href="javascript:history.back()">[Back]</a>
  22. </body>
  23. </html>

Cómo puedo hacer para que sólo se me muestre esta parte del código y eliminar el resto?

Código HTML:
Ver original
  1. <hr>
  2. <tt><b>LEMD</b> SID <b>PINAR</b> UN870 <b>PONEN</b> UT600 <b>CASPE</b> STAR <b>LEBL</b></tt>
  3. <hr>
  #2 (permalink)  
Antiguo 11/01/2013, 14:03
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Eliminar parte del código fuente obtenido

Podrías usar las clases DOM de PHP:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $doc = new DOMDocument();
  4. $doc->loadHTML(file_get_contents('http://laurl'));
  5. $data = $doc->getElementsByTagName('tt');
  6. echo $data->item(1)->nodeValue;
  7. //LEMD SID PINAR UN870 PONEN UT600 CASPE STAR LEBL
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 11/01/2013, 14:06
Avatar de zokter  
Fecha de Ingreso: enero-2013
Mensajes: 7
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Eliminar parte del código fuente obtenido

checate este video amigo :D http://www.youtube.com/watch?v=iZ-HVvoFFIU
  #4 (permalink)  
Antiguo 11/01/2013, 14:07
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Eliminar parte del código fuente obtenido

Cita:
Iniciado por zokter Ver Mensaje
checate este video amigo :D http://www.youtube.com/watch?v=iZ-HVvoFFIU
Gracias, pero no es recomendado usar expresiones regulares para esto.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 11/01/2013, 14:10
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 9 meses
Puntos: 5
Exclamación Respuesta: Eliminar parte del código fuente obtenido

Cita:
Iniciado por andresdzphp Ver Mensaje
Podrías usar las clases [URL="http://php.net/manual/es/book.dom.php"]DOM[/URL] de PHP:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $doc = new DOMDocument();
  4. $doc->loadHTML(file_get_contents('http://laurl'));
  5. $data = $doc->getElementsByTagName('tt');
  6. echo $data->item(1)->nodeValue;
  7. //LEMD SID PINAR UN870 PONEN UT600 CASPE STAR LEBL
Lo he puestoa así pero no funciona:

Código PHP:
Ver original
  1. <?php
  2. $url =  "http://rfinder.asalink.net/free/autoroute_rtx.php";
  3. $id1 = "LEMD";
  4. $ic1 = "";
  5. $id2 = "LEBL";
  6. $ic2 = "";
  7. $minalt = "FL330";
  8. $maxalt = "FL330";
  9. $lvl = "B";
  10. $dbid = "1213";
  11. $usesid = "Y";
  12. $usestar = "Y";
  13. $rnav = "Y";
  14. $nats = "";
  15. $k= "1191228562";
  16.  
  17. $parametros_post = 'id1='.urlencode($id1).'&ic1='.urlencode($ic1).'&id2='.urlencode($id2).'&ic2='.urlencode($ic2).'&minalt='.urlencode($minalt).'&maxalt='.urlencode($maxalt).'&lvl='.urlencode($lvl).'&dbid='.urlencode($dbid).'&usesid='.urlencode($usesid).'&usestar='.urlencode($usestar).'&rnav='.urlencode($rnav).'&nats='.urlencode($nats).'&k='.urlencode($k);
  18.  
  19. $sesion = curl_init($url);
  20.  
  21. curl_setopt ($sesion, CURLOPT_POST, true);
  22.  
  23. curl_setopt ($sesion, CURLOPT_POSTFIELDS, $parametros_post);
  24.  
  25. curl_setopt($sesion, CURLOPT_HEADER, false);
  26. curl_setopt($sesion, CURLOPT_RETURNTRANSFER, true);
  27.  
  28. $respuesta = curl_exec($sesion);
  29.  
  30.  
  31.  
  32. curl_close($sesion);
  33.  
  34. $doc = new DOMDocument();
  35. $doc->loadHTML(file_get_contents($respuesta));
  36. $data = $doc->getElementsByTagName('tt');
  37. echo $data->item(1)->nodeValue;
  38. //LEMD SID PINAR UN870 PONEN UT600 CASPE STAR LEBL
  39.  
  40. ?>

Da este error:

Cita:
Warning: file_get_contents( <html> <head> <style> body { font-family: verdana; font-size: 12 } table { font-family: verdana; font-size: 12; border-collapse:collapse } td { font-family: verdana; font-size: 12; border:solid black 0.1pt; padding:3pt } </style> <title>RouteFinder - LEMD - LEBL - Not for real world navigation</title> </head> <body> <font size=+1 color=#0000FF><a href=./><b>RouteFinder</b></a></font><br><i>Route generator for PC flight simulation use - <b>NOT FOR REAL WORLD NAVIGATION</b></i><br> (C)2005-2007 ASA srl - Italy <hr> Computed route from <b>MADRID/BARAJAS</b> (LEMD, LE) to <b>BARCELONA/EL PRAT</b> (LEBL, LE): 8 fixes, 267.6 nautical miles<br><br><tt>Cruise altitude between FL330 and FL330<br> <b>LEMD</b> (0.0nm) -SID-> <b>PINAR</b> (53.3nm) -UN870-> <b>SEGRE</b> (63.7 in C:\xampp\htdocs\airvirtus\albrep\rfinder.php on line 36

Warning: DOMDocument::loadHTML(): Empty string supplied as input in C:\xampp\htdocs\airvirtus\albrep\rfinder.php on line 36

Notice: Trying to get property of non-object in C:\xampp\htdocs\airvirtus\albrep\rfinder.php on line 38
  #6 (permalink)  
Antiguo 11/01/2013, 14:13
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Eliminar parte del código fuente obtenido

Si ya tienes el html con cURL para que usas file_get_contents

Cambia:

Código PHP:
Ver original
  1. $doc->loadHTML(file_get_contents($respuesta));

por

Código PHP:
Ver original
  1. $doc->loadHTML($respuesta);
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #7 (permalink)  
Antiguo 12/01/2013, 10:30
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 9 meses
Puntos: 5
Respuesta: Eliminar parte del código fuente obtenido

Umm y cómo hago aquí para dejar sólo la tabla?

Código HTML:
Ver original
  1. <title>Fuelplanner.com - Fuel Planning for Flight Simulator</title>
  2. </head>
  3. <body><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml">
  5.  
  6. <title>Fuelplanner - Advanced Fuel Planner for Microsoft Flight Simulator</title>
  7.  
  8. <META NAME="description" CONTENT="Aircraft fuel planner for Boeing 737, Boeing 757, Boeing 767, Boeing 777, Boeing 747, Airbus A320, Airbus A380, MD-11, DC-10, CRJ2, CRJ-200, E135, Embraer, Mcdonnell-Douglass">
  9. <META NAME="keywords" CONTENT="fuel,planner,fuel planner,boeing,airbus,embraer,mcdonnell-douglas,737,747,757,767,777,A320,A380,A340,MD11,MD-11,DC10,DC-10,E120,E135,E145,CRJ2,CRJ7">
  10.  
  11.  
  12.  
  13. <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
  14. <meta http-equiv="Content-Language" content="en-us">
  15. <meta name="Author" content="Garen Evans">
  16. <meta name="Editor" content="TextPad">
  17.  
  18. <link href="http://fonts.googleapis.com/css?family=Abel|Arvo" rel="stylesheet" type="text/css" />
  19. <link href="style.css" rel="stylesheet" type="text/css" media="screen" />
  20. <link href="css-form.css" rel="stylesheet" type="text/css" media="screen" />
  21. <link rel="shortcut icon" type="image/x-icon" href="icon.ico">
  22. <base target="_self">
  23.  
  24.  
  25. <?php include_once("googleanalytics.php") ?>
  26.  
  27. </head>
  28.  
  29. <body onload="kappa9()">
  30. <div id="wrapper">
  31.     <div id="menu-wrapper">
  32.     <div id="menu">
  33.         <ul>
  34.  
  35.             <!-- <li class="current_page_item"><a href="index.php">home</a></li>  -->
  36.             <li><a href="index.php">home</a></li>
  37.             <li><a href="about.php">about</a></li>
  38.             <li><a href="news.php">news</a></li>
  39.             <li><a href="api.php">api</a></li>
  40.             <li><a href="client.php">client</a></li>
  41.             <li><a href="stats.php">stats</a></li>
  42.             <li><a href="squawk.php">squawk</a></li>
  43.            
  44.             <li><a href="settings.php">logout</a></li>
  45.         </ul>
  46.     </div>
  47.     </div>
  48.     <!-- end #menu -->
  49.     <div id='about'>
  50. <h3>Airbus A300-600-PW4158 Fuel Planner</h3>
  51. <p>Madrid to Vigo  LEMD-LEVX (251 NM)<br /></p>
  52.  
  53. <h2>Total Fuel: 24466 POUNDS</h2>
  54. <table width="100%" border=1>
  55. <tr><th style="text-align:left;">&nbsp;</th><th style="text-align:left;">Fuel</td><td style="text-align:left;">Time</td></tr>
  56. <tr><td>Fuel Usage</td><td>10824</td><td>00:59</td></tr>
  57. <tr><td>Reserve Fuel</td><td>13641</td><td>01:15</td></tr>
  58. <tr><td>Fuel on Board</td><td>24466</td><td>02:14</td></tr>
  59.  
  60. <tr><td colspan=55><hr />Barajas to Vigo</td></tr>
  61. <tr><td colspan=55><hr />All weights in POUNDS</td></tr>
  62.  
  63. <!-- Copyright 2008-2012 by Garen Evans -->
  64. </body>
  65. </html>
  #8 (permalink)  
Antiguo 12/01/2013, 12:37
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Eliminar parte del código fuente obtenido

qué llevas? has consultado algo de DOM?
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #9 (permalink)  
Antiguo 12/01/2013, 12:39
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 9 meses
Puntos: 5
Exclamación Respuesta: Eliminar parte del código fuente obtenido

Cita:
Iniciado por andresdzphp Ver Mensaje
qué llevas? has consultado algo de DOM?
A que te refieres con que llevas? Sería utilizando el DOM de la misma manera que la otra.
  #10 (permalink)  
Antiguo 12/01/2013, 17:14
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 9 meses
Puntos: 5
Exclamación Respuesta: Eliminar parte del código fuente obtenido

No se puede hacer que coja los delimitadores de <table>?
  #11 (permalink)  
Antiguo 12/01/2013, 17:33
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Eliminar parte del código fuente obtenido

Si se puede hacer pero que has consultado para conseguirlo?
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #12 (permalink)  
Antiguo 13/01/2013, 03:29
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 9 meses
Puntos: 5
Exclamación Respuesta: Eliminar parte del código fuente obtenido

Cita:
Iniciado por andresdzphp Ver Mensaje
Si se puede hacer pero que has consultado para conseguirlo?
Podría usar esto con la etiqueta table? http://php.net/manual/es/domelement.getelementsbytagname.php
  #13 (permalink)  
Antiguo 13/01/2013, 04:51
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años
Puntos: 33
Respuesta: Eliminar parte del código fuente obtenido

Hola,

No me gustaría parecer rudo o algo así, pero a veces se obstinan en usar clases ya existentes y demás; y si os da un error os obstináis en arreglar ese error, cuando podría, quizás, ser más útil buscar una solución alternativa.

Ahí va mi aporte:

Código PHP:
Ver original
  1. $array = explode("<hr>", file_get_contents("url"));
  2.  
  3. //la parte que buscas está en $array[3], solo tienes que envolverla en <hr>

Dejo aquí un print_r de la ejecución de la primera línea (he quitado los "'" por comodidad):

Código:
Array
(
    [0] => 





RouteFinder
Route generator for PC flight simulation use - NOT FOR REAL WORLD NAVIGATION

(C)2005-2007 ASA srl - Italy

    [1] => 
Computed route from MADRID/BARAJAS (LEMD, LE) to BARCELONA/EL PRAT (LEBL, LE): 8 fixes, 267.6 nautical miles

Cruise altitude between FL330 and FL330
 LEMD (0.0nm) -SID->   PINAR (53.3nm) -UN870->  SEGRE (63.7nm) -UN870-> 
 BRITO (77.7nm) -UN870->  PISUS (106.7nm) -UN870->  PONEN (148.7nm) -UT600-> 
 CASPE (182.8nm) -STAR->  LEBL (267.6nm)         
Details:
    [2] => 
ID      FREQ   TRK   DIST   Coords                       Name/Remarks
LEMD             0      0   N40°2820.00" W003°3339.00" MADRID/BARAJAS
PINAR           55     53   N40°5849.06" W002°3556.99" PINAR
SEGRE           76     10   N41°0122.18" W002°2235.27" SEGRE
BRITO           76     14   N41°0444.65" W002°0440.88" BRITO
PISUS           76     29   N41°1137.20" W001°2718.00" PISUS
PONEN           76     42   N41°2114.00" W000°3251.41" PONEN
CASPE           98     34   N41°1606.42" E000°1157.78" CASPE
LEBL            88     85   N41°1749.00" E002°0442.00" BARCELONA/EL PRAT
Tracks are magnetic, distances are in nautical miles.
    [3] => 
LEMD SID PINAR UN870 PONEN UT600 CASPE STAR LEBL

    [4] => 
[Back]


)
Espero te ayude.

Y si me permites un consejo, si algo no funciona (y puede), busca otra manera de resolverlo; seguro que la hay!
  #14 (permalink)  
Antiguo 13/01/2013, 11:06
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Eliminar parte del código fuente obtenido

Cita:
Iniciado por DoHITB Ver Mensaje
Hola,

No me gustaría parecer rudo o algo así, pero a veces se obstinan en usar clases ya existentes y demás; y si os da un error os obstináis en arreglar ese error, cuando podría, quizás, ser más útil buscar una solución alternativa.

Código PHP:
Ver original
  1. $array = explode("<hr>", file_get_contents("url"));
  2.  
  3. //la parte que buscas está en $array[3], solo tienes que envolverla en <hr>
de donde sacaste las etiquetas HR? no son <hr />

Prefiero recorrer los tds de esa tabla que hacer algo así.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #15 (permalink)  
Antiguo 13/01/2013, 12:39
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años
Puntos: 33
Respuesta: Eliminar parte del código fuente obtenido

Código:
</pre></p>Tracks are magnetic, distances are in nautical miles.<hr>
<tt><b>LEMD</b> SID <b>PINAR</b> UN870 <b>PONEN</b> UT600 <b>CASPE</b> STAR <b>LEBL</b></tt>
<hr>
<a href="javascript:history.back()">[Back]</a>
Ésta es la parte final del código que obtiene. Se ve claramente una etiqueta "<hr>".

Haciendo un explode con "<hr>" como parámetro obtendremos, dentro del array, el pedazo que él quiere.

Si sólo lo tiene que usar para esa web no veo qué malo puede tener...
  #16 (permalink)  
Antiguo 13/01/2013, 12:52
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Eliminar parte del código fuente obtenido

Cita:
Iniciado por carlosuc99 Ver Mensaje
Umm y cómo hago aquí para dejar sólo la tabla?

Código HTML:
Ver original
  1. <title>Fuelplanner.com - Fuel Planning for Flight Simulator</title>
  2. </head>
  3. <body><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml">
  5.  
  6. <title>Fuelplanner - Advanced Fuel Planner for Microsoft Flight Simulator</title>
  7.  
  8. <META NAME="description" CONTENT="Aircraft fuel planner for Boeing 737, Boeing 757, Boeing 767, Boeing 777, Boeing 747, Airbus A320, Airbus A380, MD-11, DC-10, CRJ2, CRJ-200, E135, Embraer, Mcdonnell-Douglass">
  9. <META NAME="keywords" CONTENT="fuel,planner,fuel planner,boeing,airbus,embraer,mcdonnell-douglas,737,747,757,767,777,A320,A380,A340,MD11,MD-11,DC10,DC-10,E120,E135,E145,CRJ2,CRJ7">
  10.  
  11.  
  12.  
  13. <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
  14. <meta http-equiv="Content-Language" content="en-us">
  15. <meta name="Author" content="Garen Evans">
  16. <meta name="Editor" content="TextPad">
  17.  
  18. <link href="http://fonts.googleapis.com/css?family=Abel|Arvo" rel="stylesheet" type="text/css" />
  19. <link href="style.css" rel="stylesheet" type="text/css" media="screen" />
  20. <link href="css-form.css" rel="stylesheet" type="text/css" media="screen" />
  21. <link rel="shortcut icon" type="image/x-icon" href="icon.ico">
  22. <base target="_self">
  23.  
  24.  
  25. <?php include_once("googleanalytics.php") ?>
  26.  
  27. </head>
  28.  
  29. <body onload="kappa9()">
  30. <div id="wrapper">
  31.     <div id="menu-wrapper">
  32.     <div id="menu">
  33.         <ul>
  34.  
  35.             <!-- <li class="current_page_item"><a href="index.php">home</a></li>  -->
  36.             <li><a href="index.php">home</a></li>
  37.             <li><a href="about.php">about</a></li>
  38.             <li><a href="news.php">news</a></li>
  39.             <li><a href="api.php">api</a></li>
  40.             <li><a href="client.php">client</a></li>
  41.             <li><a href="stats.php">stats</a></li>
  42.             <li><a href="squawk.php">squawk</a></li>
  43.            
  44.             <li><a href="settings.php">logout</a></li>
  45.         </ul>
  46.     </div>
  47.     </div>
  48.     <!-- end #menu -->
  49.     <div id='about'>
  50. <h3>Airbus A300-600-PW4158 Fuel Planner</h3>
  51. <p>Madrid to Vigo  LEMD-LEVX (251 NM)<br /></p>
  52.  
  53. <h2>Total Fuel: 24466 POUNDS</h2>
  54. <table width="100%" border=1>
  55. <tr><th style="text-align:left;">&nbsp;</th><th style="text-align:left;">Fuel</td><td style="text-align:left;">Time</td></tr>
  56. <tr><td>Fuel Usage</td><td>10824</td><td>00:59</td></tr>
  57. <tr><td>Reserve Fuel</td><td>13641</td><td>01:15</td></tr>
  58. <tr><td>Fuel on Board</td><td>24466</td><td>02:14</td></tr>
  59.  
  60. <tr><td colspan=55><hr />Barajas to Vigo</td></tr>
  61. <tr><td colspan=55><hr />All weights in POUNDS</td></tr>
  62.  
  63. <!-- Copyright 2008-2012 by Garen Evans -->
  64. </body>
  65. </html>
Vamos en este html, como lo harías aquí?
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #17 (permalink)  
Antiguo 13/01/2013, 13:02
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años
Puntos: 33
Respuesta: Eliminar parte del código fuente obtenido

pues...

Código PHP:
Ver original
  1. explode("<table", file_get_contents("url"));

En este caso, sería necesario añadir "<table"; y se encontraría en el índice "1" del array...

¿Qué le ves de malo hacer un explode a un archivo cuyo contenido conocemos de antemano?

Saludos
  #18 (permalink)  
Antiguo 13/01/2013, 13:04
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Eliminar parte del código fuente obtenido

Cogerías:

Código HTML:
Ver original
  1. width="100%" border=1>
  2. <tr><th style="text-align:left;">&nbsp;</th><th style="text-align:left;">Fuel</td><td style="text-align:left;">Time</td></tr>
  3. <tr><td>Fuel Usage</td><td>10824</td><td>00:59</td></tr>
  4. <tr><td>Reserve Fuel</td><td>13641</td><td>01:15</td></tr>
  5. <tr><td>Fuel on Board</td><td>24466</td><td>02:14</td></tr>
  6.  
  7. <tr><td colspan=55><hr />Barajas to Vigo</td></tr>
  8. <tr><td colspan=55><hr />All weights in POUNDS</td></tr>
  9.  
  10. <!-- Copyright 2008-2012 by Garen Evans -->
  11. </body>
  12. </html>

Una solución bastante vaga la verdad.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #19 (permalink)  
Antiguo 13/01/2013, 13:27
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años
Puntos: 33
Respuesta: Eliminar parte del código fuente obtenido

Bueno quizás es vaga... desde luego efectiva (para estos casos) es...

Si lo prefieres, podríamos definir una función tal que:

Código PHP:
Ver original
  1. function getContent($con, $token){
  2.     $list = explode("<", $con);
  3.     $cList = array();
  4.     $ret = array();
  5.     $isIn = false;
  6.     $sRet = array();
  7.    
  8.     for($i=0;$i<count($list);$i++)
  9.         if(strlen($list[$i]) > 0)
  10.             $cList[] = $list[$i];
  11.    
  12.     unset($list);
  13.    
  14.     for($i=0;$i<count($cList);$i++)
  15.         if(count(explode($token, $cList[$i])) == 2)
  16.             if($isIn){
  17.                 $isIn = false;
  18.                 $sRet[] = $ret;
  19.                 $ret = array();
  20.             }else
  21.                 $isIn = true;
  22.         else
  23.             if($isIn)
  24.                 $ret[] = trim("<".$cList[$i]);
  25.    
  26.    return $sRet;
  27. }

Itera sobre el contenido web pasado como String, y guarda en un array una serie de arrays cuyo contenido es el mismo contenido que hay dentro de las etiquetas con el token pasado.

Saludos.
  #20 (permalink)  
Antiguo 13/01/2013, 13:31
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Eliminar parte del código fuente obtenido

Nah, me quedo con las clases DOM que es lo correcto:

Código PHP:
Ver original
  1. $doc =  new DOMDocument();
  2. $doc->loadHTMLFile('prueba.html');
  3.  
  4. foreach ($doc->getElementsByTagName('td') as $td) {
  5.     echo $td->nodeValue . '<br />';
  6. }
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #21 (permalink)  
Antiguo 13/01/2013, 13:38
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años
Puntos: 33
Respuesta: Eliminar parte del código fuente obtenido

Perdona, no quisiera ser grosero; pero eso de "correcto"... no se...

No digo que no tengas razón; estoy seguro que mucha gente coincidirá contigo y te dará la razón a ti (puesto que no digo que no tengas razón...)

Pero ahora déjame que te exponga mi punto de vista:

Yo hace menos de un año que hago PHP, y hasta hoy (que he visto este topic) no conocía DOM. Sin embargo, he hecho funciones que hacen cosas similares a DOM; como la que he posteado (que acabo de hacer hace 5 minutos...

Simplemente digo que no creo que algo se pueda atribuir como "correcto" o "incorrecto"... yo quizás matizaría y diría "estándar"... porque, por ejemplo, recorrer un array de forma inversa sería "incorrecto", o en vez de hacer:

Código PHP:
Ver original
  1. for($i=0;$i<count($array);$i++)
  2.   //code

hacer algo como

Código PHP:
Ver original
  1. $i = 0;
  2.  
  3. while(true){
  4.     if(!isset($array[$i]))
  5.         break;
  6.  
  7. //code
  8. i++;
  9. }

¿Qué sería "correcto"?

Yo opino que mientras funcione, tanto si está "hecho a mano" como si no, es "correcto"; ya que funciona como esperamos. Otra cosa es si es o no "estándar"...

Saludos.
  #22 (permalink)  
Antiguo 13/01/2013, 13:44
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Eliminar parte del código fuente obtenido

Para que perder tiempo escribiendo funciones, si existen ya clases optimizadas para realizar lo mismo. En tu ejemplo usaría funciones de array, ninguna es correcta.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #23 (permalink)  
Antiguo 13/01/2013, 13:51
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años
Puntos: 33
Respuesta: Eliminar parte del código fuente obtenido

Pues escribir funciones sirve para aprender, estimular la inteligencia, usar la lógica, etc...

Personalmente me gusta saber cómo se hace qué... ahora bien, cuando se como se hace me "siento capacitado" para delegar en clases y funciones ya hechas; siempre y cuando mi conocimiento me alcance para hacer por mis propios medios aquello que quiera hacer...

"En lugar de confiar en ejemplos o copiar y pegar"...

Algo similar me pasa a mi; simplemente me gusta saber que aquello que hago por delegación se hacerlo...

Y si no se hacerlo y es crucial para mi trabajo, primero delego y en mis ratos libres aprendo a hacerlo.

Pero creo que tu filosofía y la mía chocan, por lo que creo nunca llegaríamos a un acuerdo...
  #24 (permalink)  
Antiguo 16/01/2013, 14:05
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 9 meses
Puntos: 5
Exclamación Respuesta: Eliminar parte del código fuente obtenido

Ummm, lo he intentado de muchas maneras.

Tengo este código HTML:

Código HTML:
Ver original
  1. <title>Fuelplanner.com - Fuel Planning for Flight Simulator</title>
  2. </head>
  3. <body><!--
  4. Oil Model 93.18 per barrel
  5. ASM = 65127.224715006
  6. Fuel Costs =  = 4552.05
  7. Labor Costs =  = 671.99
  8. Maintenance Costs = 1146.26
  9. Landing Fee = 1992.85
  10. Total Variable Time Costs = 3811.10
  11. Cost per minute = 62.51
  12. Fuel cost per kilogram = 0.90
  13. -->
  14. <pre>
  15. fuelplanner.com | <a href='index.php'>home</a>
  16. =====================================================================
  17. L O A D S H E E T          CHECKED       APPROVED                EDNO
  18.                                                                     0
  19. ALL WEIGHTS IN POUNDS
  20.  
  21. DATABASE JUN/12 // AIRBUS A300-600-PW4158
  22.  
  23. FROM/TO        FLIGHT     A/C-REG     VERSION    CREW   DATE     TIME
  24. LEMD/LEBL      0815       __TMY       12JN21     2/03   16JAN13  1958
  25.  
  26.                          WEIGHT  DISTRIBUTION
  27. LOAD IN COMPARTMENTS     005239   B174/30
  28. PASSENGER/CABIN BAG      036270   Y186/195
  29.                                             EFU.11089/  RSV.13641
  30. TOTAL TRAFFIC LOAD       041509
  31. DRY OPERATING WEIGHT     201000
  32. ZERO FUEL WEIGHT ACTUAL  242509    MAX 286600
  33. TAKE OFF FUEL            024730        
  34. TAKE OFF WEIGHT ACTUAL   267240    MAX 375800
  35. TRIP FUEL                011089
  36. LANDING WEIGHT ACTUAL    256150    MAX 308600
  37.                                   ++--------------------------------+
  38.                                   |             LAST MINUTE CHANGES |
  39.                                   | DEST   SPEC  CL/CPT  + - WEIGHT |
  40.                                   |                                 |
  41.                                   |                                 |
  42.                                   |                                 |
  43.                                   +---------------------------------+
  44. UNDERLOAD BEFORE LMC     108559                LMC TOTAL + -
  45. ---------------------------------------------------------------------
  46. SI BLOCK TIME 01:00   RESERVE 01:15   TIME TO EMPTY 02:15   CI 69
  47. END LOADSHEET          [ A300 ]        [ LEMD-LEBL ]      [ 16JAN13 ]
  48. =====================================================================
  49. Copyright 2008-2012 by Garen Evans and FuelPlanner.com
  50. </pre>
  51. <!-- Copyright 2008-2012 by Garen Evans -->
  52. </body>
  53. </html>

Y le quiero quitar estas dos líneas:

Código HTML:
Ver original
  1. fuelplanner.com | <a href='index.php'>home</a>

Código HTML:
Ver original
  1. Copyright 2008-2012 by Garen Evans and FuelPlanner.com

Cómo lo hago?

Etiquetas: fuente, html, parte
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 02:41.