runescape-playerlevels-script
Gesponsorde koppelingen
PHP script bestanden
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
// Haal alles van de server
function getRsUserRawHtml($user){
$fp = fsockopen("hiscore.runescape.com", 80, $errno, $errstr, 30);
if (!$fp) die ("$errstr ($errno)<br />\n");
$out = "GET /aff/runescape/hiscorepersonal.cgi?username=$user HTTP/1.1\r\n";
$out .= "Host: hiscore.runescape.com\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
$html = "";
while (!feof($fp)) {
$html .= fgets($fp, 1240); // Gooi alle html van de pagina in een variabele, let op: de http-headers zitten er ook in
}
fclose($fp);
return $html;
}
// Checkt of de invoer alphanumeriek is, alle namen in RS zijn alphanumeriek
function alphaNumeriek($text, $extra = "") {
for ($i = 0; $i < strlen($text); $i++) {
if (!ereg("[A-Za-z0-9 $extra]", $text[$i])) {
return false;
}
}
return true;
}
function getRsUserArray($source, $disciplines){
// Verander de rauwe html code in een grote array
if(!strpos($source, "does not currently appear in the hiscores")){
foreach ($disciplines as $value){
if(strstr($source, $value) !== false){
$temp = explode("$value</a></td>\n<td align=\"right\">", $source);
$temp = explode("\n</td></tr>\n", $temp['1'], 2);
// $temp['0'] is van belang;
$temp2 = explode("\n</td><td align=\"right\">\n", $temp['0']);
$temp = explode("</td><td align=\"right\">\n", $temp2['0']);
$return[$value]['rank'] = $temp['0'];
$return[$value]['level'] = $temp['1'];
$return[$value]['xp'] = $temp2['1']; // Inderdaad, een hoog mierengeneuk, maar trim() deed het niet :(
} else {
$return[$value] = array("rank" => "0", "level" => "0", "xp" => "0");
}
}// Einde array
return $return;
} else {
return false;
}
}
// Veranderd de naam zo, dat je hem naar de server van RS kunt sturen,
// komt eigenlijk neem op naar lowercase en " " veranderen in "+"
function getRsUsername($name){
if(alphaNumeriek($name, "+")){
strtolower($name);
return str_replace(" ", "+", $name);
} else {
return false;
}
}
// Alles hieronder is alleen maar om te laten zien hoe je het script kunt gebruiken,
// de kern van het script staat hierboven en heeft als doel om alle stats van een
// RS-speler in een grote array te zetten. De Combat Level is er helaas niet in terug te vinden..
$user = "Weed Tiger"; // Voer hier je naam in
$user = getRsusername($user);
if(!$user) die("Geen of ongeldige gebruikersnaam!");
$disciplines = array('Overall', 'Attack', 'Defence', 'Strength', 'Hitpoints', 'Ranged', 'Prayer', 'Magic', 'Cooking', 'Woodcutting', 'Fletching', 'Fishing',
'Firemaking', 'Crafting', 'Smithing', 'Mining', 'Herblore', 'Agility', 'Thieving', 'Slayer', 'Farming', 'Runecrafting');
$rankings = getRsUserArray( getRsUserRawHtml($user), $disciplines);
if($rankings !== false){
echo "<table>\n<tr><td>Discipline</td><td>Rank</td><td>Level</td><td>XP</td></tr>\n";
foreach($rankings as $name => $values){
if($values['rank'] !== "0"){
echo "<tr><td>$name</td><td>".$values['rank']."</td><td>".$values['level']."</td><td>".$values['xp']."</td></tr>\n";
}
}
echo "</table>\n";
} else {
echo "Deze persoon komt niet voor in de hiscores";
}
// var_dump($rankings); // haal "//" aan het begin weg om de structuur van de array te zien waar alle skills met hun waardes staan
?>
// Haal alles van de server
function getRsUserRawHtml($user){
$fp = fsockopen("hiscore.runescape.com", 80, $errno, $errstr, 30);
if (!$fp) die ("$errstr ($errno)<br />\n");
$out = "GET /aff/runescape/hiscorepersonal.cgi?username=$user HTTP/1.1\r\n";
$out .= "Host: hiscore.runescape.com\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
$html = "";
while (!feof($fp)) {
$html .= fgets($fp, 1240); // Gooi alle html van de pagina in een variabele, let op: de http-headers zitten er ook in
}
fclose($fp);
return $html;
}
// Checkt of de invoer alphanumeriek is, alle namen in RS zijn alphanumeriek
function alphaNumeriek($text, $extra = "") {
for ($i = 0; $i < strlen($text); $i++) {
if (!ereg("[A-Za-z0-9 $extra]", $text[$i])) {
return false;
}
}
return true;
}
function getRsUserArray($source, $disciplines){
// Verander de rauwe html code in een grote array
if(!strpos($source, "does not currently appear in the hiscores")){
foreach ($disciplines as $value){
if(strstr($source, $value) !== false){
$temp = explode("$value</a></td>\n<td align=\"right\">", $source);
$temp = explode("\n</td></tr>\n", $temp['1'], 2);
// $temp['0'] is van belang;
$temp2 = explode("\n</td><td align=\"right\">\n", $temp['0']);
$temp = explode("</td><td align=\"right\">\n", $temp2['0']);
$return[$value]['rank'] = $temp['0'];
$return[$value]['level'] = $temp['1'];
$return[$value]['xp'] = $temp2['1']; // Inderdaad, een hoog mierengeneuk, maar trim() deed het niet :(
} else {
$return[$value] = array("rank" => "0", "level" => "0", "xp" => "0");
}
}// Einde array
return $return;
} else {
return false;
}
}
// Veranderd de naam zo, dat je hem naar de server van RS kunt sturen,
// komt eigenlijk neem op naar lowercase en " " veranderen in "+"
function getRsUsername($name){
if(alphaNumeriek($name, "+")){
strtolower($name);
return str_replace(" ", "+", $name);
} else {
return false;
}
}
// Alles hieronder is alleen maar om te laten zien hoe je het script kunt gebruiken,
// de kern van het script staat hierboven en heeft als doel om alle stats van een
// RS-speler in een grote array te zetten. De Combat Level is er helaas niet in terug te vinden..
$user = "Weed Tiger"; // Voer hier je naam in
$user = getRsusername($user);
if(!$user) die("Geen of ongeldige gebruikersnaam!");
$disciplines = array('Overall', 'Attack', 'Defence', 'Strength', 'Hitpoints', 'Ranged', 'Prayer', 'Magic', 'Cooking', 'Woodcutting', 'Fletching', 'Fishing',
'Firemaking', 'Crafting', 'Smithing', 'Mining', 'Herblore', 'Agility', 'Thieving', 'Slayer', 'Farming', 'Runecrafting');
$rankings = getRsUserArray( getRsUserRawHtml($user), $disciplines);
if($rankings !== false){
echo "<table>\n<tr><td>Discipline</td><td>Rank</td><td>Level</td><td>XP</td></tr>\n";
foreach($rankings as $name => $values){
if($values['rank'] !== "0"){
echo "<tr><td>$name</td><td>".$values['rank']."</td><td>".$values['level']."</td><td>".$values['xp']."</td></tr>\n";
}
}
echo "</table>\n";
} else {
echo "Deze persoon komt niet voor in de hiscores";
}
// var_dump($rankings); // haal "//" aan het begin weg om de structuur van de array te zien waar alle skills met hun waardes staan
?>