Foros del Web » Programando para Internet » PHP »

Buscar cadena en remoto

Estas en el tema de Buscar cadena en remoto en el foro de PHP en Foros del Web. Hola: Espero poder explicarme bien :) Estoy tratando de encontrar la fórmula para buscar mediante php una string de la que solo se el principio ...
  #1 (permalink)  
Antiguo 01/07/2011, 07:37
 
Fecha de Ingreso: julio-2011
Mensajes: 12
Antigüedad: 12 años, 9 meses
Puntos: 0
Pregunta Buscar cadena en remoto

Hola:

Espero poder explicarme bien :)

Estoy tratando de encontrar la fórmula para buscar mediante php una string de la que solo se el principio y el final, léase:

"file=" y "&amp"

dentro en una pagina remota que deberé ir asignando en bucles.

Lo de los bucles lo tengo ya hecho, pero no así lo de encontrar la bendita cadena, es posible? algun empujoncito que se os ocurra?

PD: por lo que he visto hasta ahora, lo suyo sería usar preg_match, pero no veo cómo aplicarlo o cómo decirle que busque en la página que quiero que busque :S
  #2 (permalink)  
Antiguo 01/07/2011, 07:44
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Buscar cadena en remoto

La verdad que no te explicas mucho, tienes algo de código?
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 01/07/2011, 07:54
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: Buscar cadena en remoto

en principio fopen:
$handle = fopen("http://www.example.com/", "r");

y una vez sacado el contenido usa como bien dices preg_match. Lo único es que tienes que hacer la expresión regular.
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #4 (permalink)  
Antiguo 01/07/2011, 07:56
 
Fecha de Ingreso: julio-2011
Mensajes: 12
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Buscar cadena en remoto

Lo siento, voy algo perdido, a ver si esto echa un cable (:

Código PHP:
Ver original
  1. $file = "file.txt"; // xml formatted text file...   <---- url remota?
  2.   $doc = new DOMDocument();
  3.   $doc->loadHTMLFile($file);
  4.  
  5.   $xpath = new DOMXpath($doc);
  6.  
  7.   // example 1: for everything with an id
  8.   //$elements = $xpath->query("//*[@id]");
  9.  
  10.   // example 2: for node data in a selected id
  11.   //$elements = $xpath->query("/html/body/div[@id='yourTagIdHere']");
  12.  
  13.   // example 3: same as above with wildcard
  14.   //$elements = $xpath->query("*/div[@id='player']");
  15.  
  16.   if (!is_null($elements)) {
  17.     foreach ($elements as $element) {
  18.   //    echo "<br/>[". $element->nodeName. "]";
  19.  
  20.       $nodes = $element->childNodes;
  21.       foreach ($nodes as $node) {
  22.         echo $node->nodeValue. "\n";
  23.       }
  24.     }
  25.   }
  26.  
  27. ?>


y/o


Código PHP:
Ver original
  1. $nodes = $element->childNodes;
  2. foreach ($nodes as $node) {
  3. $line_content $node->nodeValue;
  4.  
  5. preg_match('/(file_url=).?*(&amp;)/is',$line_content,$return);
  6. if(!empty($return[0])){$results[] = $line_content; unset($return);}
  7. }
  8. ?>
  #5 (permalink)  
Antiguo 01/07/2011, 08:01
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: Buscar cadena en remoto

Veo que estás usando php orientado a objetos pero comprende que si no las pones no sé que hacen esas funciones.
¿Se supone que te carga el contenido de la página bien o es una cuestión del preg_match? Osea, ¿Cual es tu duda?
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #6 (permalink)  
Antiguo 01/07/2011, 08:03
 
Fecha de Ingreso: julio-2011
Mensajes: 12
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Buscar cadena en remoto

como construir el preg_match para que busque la cadena que sé que empieza con file= y acaba en &amp

y como "decirle a preg_match" dónde ha de buscar, el resto lo tengo todo ya hecho (:

Gracias por la paciencia :')
  #7 (permalink)  
Antiguo 01/07/2011, 08:09
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: Buscar cadena en remoto

¿y donde debe buscar? un archivo puedes usar fopen, o si es un server externo:

Código PHP:
<?php
echo $html htmlspecialchars(file_get_contents('http://www.forosdelweb.com/'));
?>
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #8 (permalink)  
Antiguo 01/07/2011, 08:20
 
Fecha de Ingreso: julio-2011
Mensajes: 12
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Buscar cadena en remoto

el dónde es en una página externa si, pero como construyo la búsqueda, con preg_match? teniendo en cuenta que el inicio de la cadena a buscar es siempre la misma y el final también?
  #9 (permalink)  
Antiguo 01/07/2011, 08:21
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: Buscar cadena en remoto

No estoy seguro de entenderte pero si fuera buscarlo esas coincidencias en otras páginas viene a ser algo así:

Código PHP:
<?php
$html 
htmlspecialchars(file_get_contents('http://www.forosdelweb.com/f18/buscar-cadena-remoto-925851/')); // se encuentra
//$html = htmlspecialchars(file_get_contents('http://www.forosdelweb.com/'));  // no se encuentra

if(preg_match('/file=/',$html))
    echo 
'se encontro coincidencia';
else
    echo 
'NO se encontro coincidencia';    
?>
Lo único que debes hacer es cambiar la expresión a tu gusto en función a que quieres buscar.
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #10 (permalink)  
Antiguo 01/07/2011, 08:38
 
Fecha de Ingreso: julio-2011
Mensajes: 12
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Buscar cadena en remoto

bien! es un pasito, funciona, es decir encuentra el inicio de la cadena, lo que necesitaria es que me pasase la cadena completa dándole el inicio de la misma y el final, aunque fuese con un eco, no se si me explico,

ahora seria cuestion de "currarse" el preg_match, no?

gracias por este pequeño gran paso!
  #11 (permalink)  
Antiguo 01/07/2011, 08:53
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: Buscar cadena en remoto

si quieres obtener el contenido en vez de comprobar si hay coincidencia podrías usar preg_split()
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #12 (permalink)  
Antiguo 01/07/2011, 08:59
 
Fecha de Ingreso: julio-2011
Mensajes: 12
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Buscar cadena en remoto

hums!

Voy a pelearme un rato a ver que lio monto ;)

de nuevo gracias

Etiquetas: cadenas, preg_match, remoto, busquedas
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 10:39.