Jump to content

Preg_match com Login


Ruivo
 Share

Recommended Posts

Bom dia pessoal estou com um problema usando o preg_match.

Dantes eu usava o preg_match e estava tudo a funcionar. Mas agora o site onde eu obtinha os valores alterou ali um promenor. Que para se ver a pagina que contem os valores que eu quero é precisso de fazer Login. Então gostaria de saber como obter o valores?

Cumprimentos

Link to comment
Share on other sites

O que é que o preg_match tem a ver com o resto?

Estavas a ir buscar valores a um site (CURL?) e usavas preg_match para identificar esses valores. Agora é preciso fazer login. Portanto a tua dúvida é como fazer login, o preg_match não é para aqui chamado. Sem saber qual é o site ou o tipo de login, parece-me difícil ajudar-te.

Não respondo a dúvidas por mensagem.

Link to comment
Share on other sites

Olá camarada Ruivo, pelo que entendi deseja usar cURL para fazer login, seria ótimo se você postasse os valores que você deseja pegar com os prefixos e sufixos, caso já tenha conseguido fazer login no sistema.

Os dados estão por exemplo nesta pagina: http://en.warrock.nexoneu.com/Ranking/Profile#/xhawkeye08 são as Kills, Deaths, Nick, Nivel e por ai...

Quanto a cURL eu nunca usei nem faço a minima ideia.

Eu não consigo pegar os dados declarando os cookies antes da script? Se não então que devo usar?

Link to comment
Share on other sites

se for só verificar o ranking deverá ser ... não vejo problemas em saber a informação estatística de um jogador

no entanto os links dão informação que o site encontrasse em manutenção, por isso, daqui nada

Sim é legal.

Agora o site já deve estar disponivel.

Link to comment
Share on other sites

Estive a tentar

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://passport.nexoneu.com/Login.aspx?nexoneuTheme=Warrock");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_xec($ch);
echo "$output";

$url = file_get_contents("http://en.warrock.nexoneu.com/Ranking/Profile/xhawkeye08", false, $context);
preg_match('%<h1 class="catorzered">(.*?)<\/h1>%', $url, $nomeproduto);
print 'Nome Produto: '.$nomeproduto[1].'<br>'; // Nome produto $nomeproduto
preg_match('%<div class="profileInfo">(.*?)<\/div>%', $url, $precoproduto);
print 'Preþo Produto: '.$precoproduto[1].'<br>'; //Preþo Produto $precoproduto
curl_close($ch);  
?>

e dá-me o seguinte erro:

Fatal error: Call to undefined function curl_init() in C:\Users\Rei120\Desktop\wos\www\warrock.php on line 2

Que está errado?

Link to comment
Share on other sites

Muito obrigado pessoal já consegui instalar o cURL.

Agora deparei-me com outro problema as expressões regulares que eu pensava estarem certas afinal devem ter qualquer coisa mal porque o valor não é apanhado

Eu tenho assim:

$url = file_get_contents("http://en.warrock.nexoneu.com/Ranking/Profile/xhawkeye08", false, $context);
preg_match('%<td>KILLS<\/td>\n<td class="rTxt">[0-9.-]<\/td>%', $url, $kills);
print 'Kills: '.$kills[1].'<br>';

e quero apanhar isto

<tr>
<td>KILLS</td>
<td class="rTxt">318,717</td>
</tr>	 

Sendo o valor 318,717 o valor que eu quero que apanhe.

Alguem me dá uma ajudinha?

Link to comment
Share on other sites

estou a ver pelo menos alguns erros na expressão regular

1º - tens a seguinte combinação "[0-9.-]" para detectar um número, como vês, não tens o caracter virgula, caracter que aparece no número no HTML a ser interpretado "318,717"

2º - não estás a dizer que o grupo de elementos que determina o número pode aparecer 1 ou mais vezes, que na realidade deveria ser algo do genero:

(-|)\d+(\,\d+|)

isto indica :

(-|) : sinal menos ou não

\d+ : um dígito ou mais

(\,\d+|) : uma virgula com um dígito ou mais ou nada

3º - lembra-te que o resultado será toda a entrada expressão regular, isto é, será todo o

<td>KILLS</td>
<td class="rTxt">318,717</td>

podes usar o lookahead e o lookbehind para selecionar somente o que pretendes

podes sempre usar sites online para testar a tua expressão regular como por exemplo : http://www.regextester.com/

Edited by HappyHippyHippo
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.