Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/02/2010, 01:25
Avatar de CHILENOCES
CHILENOCES
 
Fecha de Ingreso: octubre-2001
Ubicación: Mmm paseando por la vida
Mensajes: 491
Antigüedad: 22 años, 6 meses
Puntos: 0
Leer multiples cadenas de texto con fopen

Hola amigos,
Tengo el siguiente codigo:

Código PHP:
Ver original
  1. <?php
  2. $url = "http://www.bcentral.cl/";
  3.  
  4. $palabra = "<td>Dólar Observado</td>";
  5.  
  6. $fd = @fopen($url, "r"); // Apertura para sólo lectura; ubica el apuntador de archivo al comienzo del mismo.
  7. while ($line=@fgets($fd,1000)){
  8. $pos = strpos ($line, $palabra);
  9. if ($pos){
  10. $glosa = "$";
  11. $line2=fgets($fd,100);
  12. $valor_dolar = strip_tags($glosa.trim($line2));
  13. }
  14. }
  15. @fclose ($fd);
  16.  
  17. echo "$valor_dolar";
  18. ?>

Este código busca la $palabra y luego me devuelve un valor numero que aparece luego de esa palabra, si lo guardan y lo corren veran a lo que me refiero. Basicamente busca donde diga "<td>Dólar Observado</td>" y luego lee la siguiente fila que es el valor del dolar en mi pais y me devuelve algo asi como $333.44

Hasta ahi todo bien y funciona perfecto.

Lo que necesito es leer 4 valores especificos, y recuperar los 4 montos de cada uno. Obviamente puedo hacerlo repitiendo el codigo mencionado arriba 4 veces y cambiando solo la $palabra pero me preguntaba si seria posible hacerlo sin tener que repetir el codigo 4 veces, si no que mas bien solo cambiar la $palabra 4 veces y mantener solo 1 procesador. De tal manera que la parte de $palabras sea algo asi:

Código PHP:
Ver original
  1. <?php
  2. $palabra1 = "<td>Palabra a buscar 1</td>";
  3. $palabra2 = "<td>Palabra a buscar 2</td>";
  4. $palabra3 = "<td>Palabra a buscar 3</td>";
  5. $palabra4 = "<td>Palabra a buscar 4</td>";
  6. ?>

Espero se entienda y puedan ayudarme.

Muchas gracias.


-------------------------------------------------------------

Amigos, creo que no se entiende muy bien, lo que quiero evitar, es tener que hacer esto:

Código PHP:
Ver original
  1. $url = "http://www.bcentral.cl/";
  2.  
  3. $palabra1 = "<td>Dólar Observado</td>";
  4.  
  5. $fd = @fopen($url, "r"); // Apertura para sólo lectura; ubica el apuntador de archivo al comienzo del mismo.
  6. while ($line=@fgets($fd,1000)){
  7. $pos = strpos ($line, $palabra1);
  8. if ($pos){
  9. $glosa = "$";
  10. $line2=fgets($fd,100);
  11. $valor_dolar = strip_tags($glosa.trim($line2));
  12. }
  13. }
  14. @fclose ($fd);
  15.  
  16. $palabra2 = "<td>Euro</td>";
  17.  
  18. $fd = @fopen($url, "r"); // Apertura para sólo lectura; ubica el apuntador de archivo al comienzo del mismo.
  19. while ($line=@fgets($fd,1000)){
  20. $pos = strpos ($line, $palabra2);
  21. if ($pos){
  22. $glosa = "$";
  23. $line2=fgets($fd,100);
  24. $valor_dolar = strip_tags($glosa.trim($line2));
  25. }
  26. }
  27. @fclose ($fd);
  28.  
  29. $palabra3 = "<td>UTM</td>";
  30.  
  31. $fd = @fopen($url, "r"); // Apertura para sólo lectura; ubica el apuntador de archivo al comienzo del mismo.
  32. while ($line=@fgets($fd,1000)){
  33. $pos = strpos ($line, $palabra3);
  34. if ($pos){
  35. $glosa = "$";
  36. $line2=fgets($fd,100);
  37. $valor_dolar = strip_tags($glosa.trim($line2));
  38. }
  39. }
  40. @fclose ($fd);


Muchas gracias.
__________________
ChilenoCesar Looking for something new...

Última edición por CHILENOCES; 26/02/2010 a las 15:06