Ver Mensaje Individual
  #4 (permalink)  
Antiguo 08/01/2008, 04:01
Avatar de jpinedo
jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Re: Capturar cosas de una web externa

El problema principal que vas a tener es que es tabla está paginada. Por ahora hay 3 páginas en donde pueda estar tu alianza. Y tendrás que buscar una por una.

El uso de expresiones regulares tiende a cargar un poco más aún. trata de utilizar funciones simples como strpos(), substr(), etc, etc. en lugar de expresiones regulares. La estructura de la web es muy sencilla y te lo permite.

Por ejemplo, algo como esto debería funcionar:
Código PHP:
<?php

$alianza_buscada 
'LD';

$num_paginas 3;
$pagina 1;
$encontrado false;

//Hay que recorrer todas las páginas
while($pagina <= $num_paginas && $encontrado == false){
    
$contenido file_get_contents('http://www.astrowars-tools.com/tools/rankings.php?ranking=alliance&page='.$pagina);
    
$contenido str_replace("\t"''$contenido);

    
$inicio_tabla strpos($contenido'</tr>') + 5
    
$fin_tabla strpos($contenido'</table>');

    
//caracteres totales 
    
$num_caracteres $fin_tabla $inicio_tabla;

    
$tabla trim(substr($contenido$inicio_tabla$num_caracteres));

    
$filas = array();
    
$filas explode('</tr>'$tabla);

    foreach( 
$filas as $fila ){
        
$fila trim(strip_tags($fila));
        
$columna explode("\n"$fila);
        if( 
$columna[1] == $alianza_buscada ){
            
$ranking $columna[0];
            
$encontrado true;
        }
    }
    
$pagina++;
}

if( 
$encontrado == true ){
    echo 
'La alianza '.$alianza_buscada.' se encuentra en el puesto '.$ranking;
}else{
    echo 
'No se encontró a la alianza '.$alianza_buscada.' en el ranking';
}

?>
Saludos

Última edición por jpinedo; 08/01/2008 a las 04:06