Jump to content


Photo

[3] Pegar Informação Em Pagina Externa.


  • Faça o login para participar
8 replies to this topic

#1 vincity

vincity

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Não informado

Posted 21/02/2008, 11:37

Nao sei se existe a funcao para o que eu preciso.
Mas digamos que eu preciso por algo assim...



Sera exibida na pagina
hxxp://www.PrimeiroSite.com
3660 - Numero de visitantes Online na VMO


Só que no caso esse 3660 vai estar localizado em
hxxp://forum.wmonline.com.br/index.php
( Pois foi o meio mais pratico que encontrei de esplicar isso. )

os sites são totalmente independentes.



Usuarios Online:&lt;script language="Javascript" src="hxxp://www.PrimeiroSite.com/online.php"></script>

No caso o Script cidato eu usarei para mostrar o resultado ( Pois acho melhor para economizar banda. Utilizarei outro servidor )



E uma anotacao..
gostaria de saber se a pagina for dinamica ou os endereços assim
/index.php?act
Como faria para pegar esse conteudo

EDIT 1.

Com esse codigo
<?php
#---------------
#retirado do site http://www.php.net
$handle = fopen ("http://www.PrimeiroSite.com/", "rb");
$conteudo = "";
do {
	$data = fread($handle, 2000);
	if (strlen($data) == 0) {
		break;
	}
	$conteudo .= $data;
} while(true);
fclose ($handle);
#------------------

$teste = substr($conteudo, strpos($conteudo, "Votos:</font>"));
$cont = substr($teste,0,strpos($teste, ">C"));

print($cont);

?>
$data = fread($handle, 2000);
2000 = Tamanho do arquivo a ser lido ( coloquei para ler 2000 bytes )

($conteudo, "Votos:</font>"));
Começando de onde ele começa a Escrever.

($teste,0,strpos($teste, ">C"));
Escreve até aqui.

Consegui separar disso
<font color="#000080" size="3">Votos:</font> 1185<br><font color="#000080" size="3">Categoria:</font>

até esse ponto.
Votos:</font> 1185<br><font color="#000080" size="3"

Como eu iria conseguir selecionar melhor esses dados que desejo no caso eh o 1185

Fiz até onde consegui

Alguem entende esse tipo de funçao ?

Edição feita por: vincity, 21/02/2008, 09:48.


#2 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 21/02/2008, 11:53

Bom, tomando como base esta última sentença sua, faz assim para encontrar o valor que quer:

<?php

$str = "Votos:</font> 1185<br><font color=\"#000080\" size=\"3\"";

preg_match("/Votos:<\/font> ([0-9]+)<br>/i", $str, $matches);

echo $matches[1];

?>

Flws...
(ok2)Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#3 vincity

vincity

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Não informado

Posted 21/02/2008, 12:02

Nao nao....
o 1185 nao pode contar.. pois ele eh a variavel.


Desculpa acho que onde voce usuou para montar seu script tava meio com poucos identificadores

ID:</font> 78304<br><font color="#000080" size="3">Votos:</font> 1185<br><font color="#000080" size="3">Categoria:

Edição feita por: vincity, 21/02/2008, 12:13.


#4 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 21/02/2008, 12:36

Tem como explicar de forma mais clara então? Eu que não estou conseguindo entender o que você quer fazer.. :huh: Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#5 vincity

vincity

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Não informado

Posted 21/02/2008, 12:40

Editando este post com explicacao


HTML onde esta o conteudo que desejo extrair..

<font color="#000080" size="3">ID:</font> 78304<br><font color="#000080" size="3">Votos:</font> 1185<br><font color="#000080" size="3">Categoria:</font>
Quero extrair o conteudo Votos o numero 1185 no momento ( se alguem votar ele vai mudar entao nao pode ter ele no codigo )


informações que tenho ja foram citadas.

Editado

Edição feita por: vincity, 21/02/2008, 12:40.


#6 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 21/02/2008, 12:46

Então.. é exatamente o que fiz...

Esta página que você está extraindo os dados é gerada dinamicamente mas o cliente, que no caso somos nós, recebemos o HTML e no momento que estas informações forem puxadas através deste script vai resgatar o valor que tiver na hora.

O que eu coloquei no $str foi só um exemplo, você utilizando algo para receber isto como o fopen() que você utilizou lá em cima vai sempre pegar o HTML.

Flws...
(y)Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#7 vincity

vincity

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Não informado

Posted 21/02/2008, 12:52

Mais eu ja peguei o HTML
quero saber como filtra.
esses textos em negrito.



<font color="#000080" size="3">Votos:</font> 1185<br><font color="#000080" size="3">Categoria:</font>


e nao entendi porque disse para usar o fopen() para receber o arquivo se eu ja estou usando ele e estou recebendo.

#8 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 21/02/2008, 12:57

Tá.. então você quer pegar tudo, menos este número ai dentro? :ponder: Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#9 vincity

vincity

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Não informado

Posted 21/02/2008, 13:02

Nao.. eu quero pegar so o numero.
no caso



o comando que segue abaixo
$teste = substr($conteudo, strpos($conteudo, "Votos:</font>"));

apaga tudo que vem antes de
Votos:</font>





e esse comando
$cont = substr($teste,0,strpos($teste, ">C"));

apaga tudo que vai depois de
>C


print($cont);
Escreve.
Agora nao sei se isso eh o melhor metodo para fazer o exemplo.



Encontrei uma solucao Momentanea..
Vou postar aqui e alguem ajuda para dar uma solucao Definitiva.

<?php
#---------------
#retirado do site http://www.php.net
$handle = fopen ("http://www.2botters.com/teste.php", "rb");
$conteudo = "";
do {
$data = fread($handle, 2000);
if (strlen($data) == 0) {
break;
}
$conteudo .= $data;
} while(true);
fclose ($handle);
#------------------

#Pega o Conteudo do arquivo apaga o que vem antes de Vot... 
$cont = substr($conteudo, strpos($conteudo, "Votos:</font>"));  

#Pega o cont apaga o que vem depois de >C o que faz apagar depois é o 0 ($cont,0,
$cont1 = substr($cont,0,strpos($cont, ">C"));

#pega o conteudo do cont1 e apaga o que vem depois
$cont2 = substr($cont1,0,strpos($cont1, "<b"));


#pega o conteudo do cont2 e apaga o que vem depois
$cont3 = substr($cont2,strpos($cont2, " "));
#Essa parte que vou comentar abaixo



#escreve o que sobrou 
print($cont3);

?>


Aqui como o que sobra é </font> 1185
Usei o comando
$cont3 = substr($cont2,strpos($cont2, " "));
EU mandei apagar o que vinha antes do espaço.
mais nao vai ser sempre que vai dar para fazer isso..
entao alguem poderia me dizer como que eu apagaria se o codigo estivese assim
</font>1185

Edição feita por: vincity, 21/02/2008, 13:27.





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq