runescape-playerlevels-script

Gesponsorde koppelingen

PHP script bestanden

  1. runescape-playerlevels-script

« Lees de omschrijving en reacties

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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
?>

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.