Jump to content


X4ND4O/RP's Content

There have been 1 items by X4ND4O/RP (Search limited from 29/03/2023)


Ordernar por                Order  

#930845 Captação De Dados Externos

Posted by X4ND4O/RP on 13/08/2008, 17:47 in PHP

Olá Boa Tarde,
Preciso resolver um problema que eu mesmo criei de um script que capta dados externos de uma página e imprime na minha. Futuramente desejo transformar para a criação de imagens e serem inseridas, por exemplo, em assinaturas de fóruns do meu grupo (mas isso, por enquanto, não é o problema).

Postarei o código antes, para depois explicar minha idéia e o problema. Peço que ignorem o código mal-feito, mas há muito tempo não brinco com PHP e precisei ficar "catando" pedaços de códigos no manual e/ou tutoriais:
Não ocultarei nenhuma informação (como a página que estou buscando os dados, por exemplo), por acreditar que será essencial caso houver alguma solução.
<?php
// Procurar por jogador específico
$pesq_pagina = file_get_contents('http://www.gunsoft.com.br/rank_landmass/ranking_geral.php?tprank=1&pagina=5&nmbusca=wGbras&respbusca=1');
/* Localiza linha que deve começar, não sei usar a função corretamente, e também acho que a página HTML do ranking
não tem uma especificação direta para recortar só a linha que quero */
preg_match_all('/#ffcc00(.+)Patentes/s', $url, $conteudo);
$pedacos = explode(">", $conteudo[0][0]);

/* Modificação imposta por falha no uso do explode =)
Como precisava argumentar os dados em array e posteriormente localizar a linha que precisaria pegar, usei o explode com separação no ">".
Como o explode come os ">" das tag, precisei "gambiarriar" isto */
$imagem  = $pedacos[3].">";

/* Por preguiça de renomear as imagens e a pasta, inclui esse replace, mas nada importante para o funcionamento do código.
Por isso que recortei o código. */
$rank = array('Patentes', 'p1.gif', 'p2.gif', '(...)');
$local   = array('patentes', '1.gif', '11.gif', '(...)');

$novafrase = str_replace($rank, $local, $imagem);

echo $novafrase;

?>
A idéia: O código pega informações de um rank que disponibiliza dados de jogadores de determinado jogo e imprime na minha página. Até aí está funcionando tudo corretamente.
O único problema é que, no caso do exemplo, o jogador "wGbras" se encontra na "página 5", caso precise localizar outro jogador, precisaria saber em qual "página" ele se encontra. Se eu colocar simplesmente: ranking_geral.php?nmbusca=jogador, ele não retorna nenhum valor, tornando o código inútil.
Tentei usar um "for" para verificar da página 1 até a última página: 92, mas por motivos lógicos, a verificação demanda muito tempo já que abriria página por página.
Outra solução seria utilizar o exemplo do "for" para pesquisar página por página e quando encontrada parar a busca. O código até que funcionaria satisfatoriamente para jogadores que estejam no máximo até a página 30, mas caso algum jogador queria ter suas informações que se encontra na página 50, o código falhará.
Caso vocês acessem a página de busca do ranking (http://www.gunsoft.com.br/rank_landmass/ranking_geral.php?tprank=1&pagina=1), verão que ela remete um "form" para (pesqnome.php?tprank=1), que ao meu ver disponibiliza as informações de localização. Acho que a única solução plausível seria o código "arrancar" a informação da página que fornece a localização e imprimir no meu código.
Até o momento, não acredito que haja solução. Tentei entrar em contato com a empresa que cuida da licença do jogo aqui no Brasil, mas infelizmente não disponibilizaram nenhum auxílio. Acredito que a única maneira viável, seria o próprio site trazer informações individuais dos jogadores (como por exemplo, jogador.php?nome=wGbras) para assim conseguir efetuar uma colagem satisfatória. Só que infelizmente acho que por essa linha, não terei êxito.




IPB Skin By Virteq