Mit Postado Dezembro 21, 2006 Denunciar Share Postado Dezembro 21, 2006 Eu jogo um jogo chamado Tibia... (www.tibia.com) Eu queria saber como capiturar informacoes do site... como por exemplo as pessoas online..Como por exemplo essa aqui: http://www.marknadsvagen.com/lastchapter/online.phpque é retirada do site do tibia: http://www.tibia.com/statistics/?subtopic=...mp;world=AnticaMas eu queria poder escolher saber quem estar online e não todo mundo... fazer tipo uma 'VIP LIST'..alguém tem alguma ideia de como fazer? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jose.rob.jr Postado Dezembro 21, 2006 Denunciar Share Postado Dezembro 21, 2006 você pode fazer assim:carrega a página em uma variavel, e corta tudo que vem antes de <A NAME="A"></A> já que a lista começa apartir daí, e corta tudo que vem depois de cortar, corta tudo o que vem depois de </TABLE>.Assím você vai ter uma variável com a tabela. Depois você pode tentar fazer uma expressão regular, ou tentar descobrir como a tabela é gerada e interpretar com o php. ;)eu fiz um exemplo de como transformar aquela página em XML, e se tiver especificado um mundo ele pega todos os mundos e cria um select com XHTML 1.0<?php if(!empty($_GET['mundo'])) $mundo=$_GET['mundo']; else $mundo=null; if($mundo){ $pagina=file_get_contents("http://www.tibia.com/statistics/?subtopic=whoisonline&world=$mundo",false); $pagina=explode('<A NAME="A"></A>',$pagina); $pagina='<TR BGCOLOR=#F1E0C6><TD WIDTH=70%>'.$pagina[1]; $pagina=explode('</TABLE>',$pagina); $pagina=$pagina[0]; $pagina=str_replace("</TR>","</TR>\n",$pagina); $pagina=explode("\n",$pagina); $ER='/^$/'; $pagina=preg_replace($ER,"",$pagina); $ER='/^<TR[^>]+><TD[^>]+>(<A NAME="."><\/A>)?<A[^>]+>/'; $pagina=preg_replace($ER,"<nome>",$pagina); $ER='/<\/A><\/TD><TD[^>]+>/'; $pagina=preg_replace($ER,"</nome><level>",$pagina); $ER='/<\/TD><TD[^>]+>/'; $pagina=preg_replace($ER,"</level><vocacao>",$pagina); $ER='/<\/TD><\/TR>$/'; $pagina=preg_replace($ER,"</vocacao>",$pagina); foreach($pagina as $k=>$v) {if($v) $pagina[$k]="<char>\r\n\t\t$v\r\n\t</char>"; else unset($pagina[$k]);} $pagina="<lista>\r\n\t".implode("\r\n\t",$pagina)."\r\n</lista>"; header("Content-type: text/xml"); echo $pagina; } else{ $pagina=file_get_contents("http://www.tibia.com/statistics/?subtopic=whoisonline&world=Antica",false); $pagina=explode('<SELECT NAME="world">',$pagina); $pagina=$pagina[1]; $pagina=explode('</SELECT>',$pagina); $pagina=$pagina[0]; //$pagina=explode("\r\n",$pagina); //$ER='/^<[A-Z ="]+>/'; $ER='/<[A-Z ="a-z]+>/'; $pagina=preg_replace($ER,"",$pagina); $pagina=explode("\n",$pagina); //print_r($pagina); $html="<select name='mundo'>"; foreach($pagina as $v){ $v=trim($v); if(!empty($v)) $html.="<option value='$v'>$v</option>"; } $html.="</select>"; ?> <?='<?xml version="1.0" encoding="iso-8859-1"?>'?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Selecione um mundo</title> </head> <body> <form method="get" action=""> <div> Selecione um mundo: <?=$html?> <input type="submit" value="Ver quem está on-line"/> </div> </form> <p> <a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0 Strict" height="31" width="88" style="border:0px" /></a> </p> </body> </html> <? } ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Mit Postado Dezembro 22, 2006 Autor Denunciar Share Postado Dezembro 22, 2006 Obrigado... :D Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Mit Postado Dezembro 22, 2006 Autor Denunciar Share Postado Dezembro 22, 2006 Eu achei esse codigo, mas não consigo adicionar apenas uma pessoa... tem que ser um clã inteiro...:( <?php /*------------------------- Title: Tibia Guild Online List Author: Mike Haugland Date: January 06, 2005 URL: [url=http://haugland.ca]http://haugland.ca[/url] Description: This script is used to display a list of online and offline characters for a chosen guild in the game of Tibia. Copyright: All code written by Mike Haugland with the exception of some noted code below for parsing which was from [url=http://www.magicasoft.net/?id=18]http://www.magicasoft.net/?id=18[/url] -------------------------*/ ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Online List</title> </head> <body> <h1>Member List</h1> <?php //-------[Settings]----------- // These are the only things you really need to edit! $world = "Antica"; $guildname = "Last Chapter"; //---------------------------- //Get the online list for the world of your choice. $path = "http://www.tibia.com/statistics/?subtopic=whoisonline&world=".urlencode($world); if ($contents = file_get_contents($path)) { //Create arrays to store the names of online and offline characters. $onlineList = array(); $offlineList = array(); //Retrieve and parse the guildlist for up-to-date members. Some code used from BBMan at [url=http://www.magicasoft.net/?id=18]http://www.magicasoft.net/?id=18[/url] $members = file_get_contents('http://www.tibia.com/community/?subtopic=guilds&page=view&GuildName='.urlencode($guildname)); // get the members file $members = split("<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%>\s|\S*</TABLE>",$members); // get the big parts $members = strip_tags($members[8],'<tr>'); //take the members element $members = preg_replace('!<TR BGCOLOR=#w{6,6}|</TR>!','',$members); $members = str_replace(' ',' ',$members); //Replace HTML entity with normal space. $members = explode('>',$members); //End of BBMan code //Clear unnecessary array values. unset($members[0],$members[1],$members[2]); //Loop through and put characters in online or offline array. for($count=3;$count<count($members)+3;$count++){ $newmember = explode("\n",$members[$count]); //Split up user info. if (count($newmember) == 3) { $name = $newmember[2]; } else { $name = $newmember[1]; } $name = explode(" (",$name); $characterSearch = str_replace(' ',' ',$name[0]); //Recovert space to HTML entity for searching. //Apply ">" and "<" around name to eliminate chances of mistakenly reporting a name as online. //If you don't do this, searching for Thor would return as online if someone had the name Asthorm. $characterSearch = ">".$characterSearch."<"; //Get the numbers for the lists. $inOnline = count($onlineList); $inOffline = count($offlineList); //Check to see if character is in the source of the online list. Put into array accordingly. if (strpos($contents,$characterSearch)) { $onlineList[$inOnline] = $name[0]; } else { $offlineList[$inOffline] = $name[0]; } } //Sort names alphabetically and reset the array numbers. @reset(sort($onlineList)); @reset(sort($offlineList)); //Display number of online members versus total members. echo count($onlineList)." of ".count($members)." members online."; //Display online list. echo "<ul id=\"onlineList\">"; for ($count=0;$count<count($onlineList);$count++) { echo "<li><a href=\"http://www.tibia.com/community/?subtopic=character&name=".urlencode($onlineList[$count])."\">".$onlineList[$count]."</a> is <span class=\"online\">Online</span></li>"; } //Display offline list. echo "</ul><ul id=\"offlineList\">"; for ($count=0;$count<count($offlineList);$count++) { echo "<li><a href=\"http://www.tibia.com/community/?subtopic=character&name=".urlencode($offlineList[$count])."\">".$offlineList[$count]."</a> is <span class=\"offline\">Offline</span></li>"; } echo "</ul>"; } else { //In the event of failure, let the people know. echo "<p>Opening ".$path." failed.</p>"; } ?> </body> </html> Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Mit
Eu jogo um jogo chamado Tibia... (www.tibia.com) Eu queria saber como capiturar informacoes do site... como por exemplo as pessoas online..
Como por exemplo essa aqui: http://www.marknadsvagen.com/lastchapter/online.php
que é retirada do site do tibia: http://www.tibia.com/statistics/?subtopic=...mp;world=Antica
Mas eu queria poder escolher saber quem estar online e não todo mundo... fazer tipo uma 'VIP LIST'..
alguém tem alguma ideia de como fazer?
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.