Foros del Web » Programando para Internet » PHP »

Recoger datos de un div

Estas en el tema de Recoger datos de un div en el foro de PHP en Foros del Web. buenas, estoy haciendo una imagen dinàmica y tengo que extraer los datos de un html. Por ejemplo: tengo estos divs: Código HTML: <div class='PlayerRank'> 18177 ...
  #1 (permalink)  
Antiguo 28/01/2008, 12:55
 
Fecha de Ingreso: septiembre-2006
Mensajes: 81
Antigüedad: 17 años, 7 meses
Puntos: 5
Recoger datos de un div

buenas, estoy haciendo una imagen dinàmica y tengo que extraer los datos de un html. Por ejemplo:
tengo estos divs:
Código HTML:
<div class='PlayerRank'>
                      18177 th
                    </div>
                    Kills:
                    <div class='PlayerKills'>

                    42934
                  </div>
                    Deaths:
                    <div class='PlayerDeaths'>
                      34671
                    </div>
                   
                    Experience:
                    <div class='PlayerDeaths'>
                      1150097
                    </div> 
y necesito extraer el 42934, el 34671 y el 1150097.

no tengo ni idea de como hacerlo, he probado con fopen y fget pero no se como funcionan.

Muchas gracias
  #2 (permalink)  
Antiguo 28/01/2008, 13:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Recoger datos de un div

Aparte de usar fopen y fegets debes de usar expresiones regulares para obtener el texto del campo y posteriormente crear tu imagen.

Saludos.
  #3 (permalink)  
Antiguo 28/01/2008, 13:10
 
Fecha de Ingreso: septiembre-2006
Mensajes: 81
Antigüedad: 17 años, 7 meses
Puntos: 5
Re: Recoger datos de un div

El problema es que el archivo donde se encuentran los datos está en otro servidor al que no tengo acceso al codigo. por lo que lo tengo que sacar del resultado que me da.

Para crear la imagen ya se como hacerlo, ya he creado alguna pero lo de las expresiones regulares, no se como se hace, podrias ponerme un ejemplo por favor?

Saludos y muchas gracias
  #4 (permalink)  
Antiguo 28/01/2008, 13:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Recoger datos de un div

Para obtener los datos puedes usar la extensión cURL, así podrás descargar el código como si fuera un explorador web.

Saludos.
  #5 (permalink)  
Antiguo 28/01/2008, 13:15
 
Fecha de Ingreso: septiembre-2006
Mensajes: 81
Antigüedad: 17 años, 7 meses
Puntos: 5
Re: Recoger datos de un div

buff creo que este script se me está complicando por momentos...
las expresiones regulares ya me acordao de lo que eran, (santo google) el problema que tengo es que no se como cortar el texto para que me guarde en variables solo lo que quiero.

Saludos
  #6 (permalink)  
Antiguo 28/01/2008, 13:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Recoger datos de un div

Pues mi recomendación es usar expresiones regulares, aunque no soy muy hábil en ellas.

Saludos.
  #7 (permalink)  
Antiguo 28/01/2008, 13:47
 
Fecha de Ingreso: septiembre-2006
Mensajes: 81
Antigüedad: 17 años, 7 meses
Puntos: 5
Re: Recoger datos de un div

Nadie save como hacerlo, por favor, no se como hacerlo y me gustaria poder tirar adelante este script.

Muchas gracias
  #8 (permalink)  
Antiguo 28/01/2008, 14:05
 
Fecha de Ingreso: septiembre-2005
Mensajes: 7
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: Recoger datos de un div

Yo lo hago con javascript
si son class no te queda más remedio que recurrir a un bucle:
Ejemplo:
//este array lo asocio por cada uno de los enlaces de Opciones que se creen
var capaTitulo=new Array();
var capaOpciones=new Array();
function mostrarBarraOpciones(titulo,capaOp){

//miro si el vector fue inicializado
if(!capaOpciones.length){ //en caso negativo es que se el dio al click por primera vez,lo inicializo y almaceno la información de capa y subcapa
capaTitulo[capaTitulo.length]=titulo;
capaOpciones[capaOpciones.length]=capaOp;
}
else{
if(recorrer(capaOp)){ //si la capa no ha sido almaceno en los vectores la información de las capas de opciones, si la función devuelve false es que no está
capaOpciones[capaOpciones.length]=capaOp;
capaTitulo[capaTitulo.length]=titulo;
}
}
ocultarOpciones();// en principio cerramos todas las capas de las que tengamos información
//abrimos la que nos interesa
mostrarTitulos();
//mostramos y ocultamos lo que nos interesa
document.getElementById(capaOp).style.display='blo ck';
document.getElementById(titulo).style.display='non e';

}
//recorremos el vector para ver si la información de la capa ya se encuentra almacenada
function recorrer(layer){
for(i=0;i<capaOpciones.length;i++){
if(capaOpciones[i]==layer)
return false; //la capa ya se encuentra en el vector
}
return true; //la capa no se encuentra en el vector y se puede almacenar su información
}
//cerramos todas las capas de las que tengamos información
function ocultarOpciones(){
for(i=0;i<capaOpciones.length;i++){

op=document.getElementById(capaOpciones[i]);
op.style.display='none';
}
}
function mostrarTitulos(){
for(i=0;i<capaTitulo.length;i++){
t=document.getElementById(capaTitulo[i]);
t.style.display='block';
}
}
Yo oculto o muestro capas según me interesa.
Es más fácil si lo asocias en vez con class con id, la sintaxis se simplica:
var etiqueta=document.getElementById('nombreId');
  #9 (permalink)  
Antiguo 28/01/2008, 14:10
 
Fecha de Ingreso: septiembre-2005
Mensajes: 7
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: Recoger datos de un div

Perdón no había leído bien, y si pruebas a introducir esto y despues envías???
$_SESSION['ejemplo']=42934.
A mí las variables de sesión me van de maravilla
  #10 (permalink)  
Antiguo 28/01/2008, 15:50
 
Fecha de Ingreso: septiembre-2006
Mensajes: 81
Antigüedad: 17 años, 7 meses
Puntos: 5
Re: Recoger datos de un div

lo tengo que hacer con php por lo que el javascript no me sirve. pero mirare el codigo a ver si puedo "adaptarlo" a php. y lo de las sessiones no lo he entendido.

Saludos y gracias
  #11 (permalink)  
Antiguo 28/01/2008, 16:39
 
Fecha de Ingreso: septiembre-2006
Mensajes: 81
Antigüedad: 17 años, 7 meses
Puntos: 5
Re: Recoger datos de un div

bueno, lo he conseguido. he usado el file(); y he creado un bucle calculando las lineas. Y segun la linea cogia cada parametro. Aqui pongo el codigo:
Código PHP:
<?php
$arx 
file("http://ops.warrock.net/showprofile.aspx?p=".$_GET['p']);

foreach (
$arx as $line_num => $line) {
    if(
$line_num == 123){
        
$level $line;
    }
    if(
$line_num == 128){
        
$ratio $line;
    }
    if(
$line_num == 136){
        
$kills $line;
    }
    if(
$line_num == 140){
        
$deaths $line;
    }
    if(
$line_num == 145){
        
$exp $line;
    }
}
    echo 
"$level<br>$ratio<br>$kills<br>$deaths<br>$exp";
?>

Última edición por elliotmoso; 28/01/2008 a las 16:51
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 19:41.