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