Foros del Web » Programando para Internet » PHP »

Leer multiples cadenas de texto con fopen

Estas en el tema de Leer multiples cadenas de texto con fopen en el foro de PHP en Foros del Web. Hola amigos, Tengo el siguiente codigo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <?php $url = "http://www.bcentral.cl/" ;   $palabra = "<td>Dólar Observado</td>" ;   $fd ...
  #1 (permalink)  
Antiguo 26/02/2010, 01:25
Avatar de 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

Etiquetas: cadenas, fopen, multiples
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 20:29.