url encode

Scripts e snippets scritti in GameMaker Language (gml)
Rispondi
Avatar utente
Tizzio
GMI Honor
Messaggi: 5836
Iscritto il: 29/06/2010, 23:43
Specialità: programmazione
Contatta:

url encode

Messaggio da Tizzio »

Mi serviva uno script per l'encoding dei link e ho trovato questa funzione sul blog yoyogames
> http://help.yoyogames.com/entries/26963 ... oding-URLs

Quindi ho riscritto da 0 lo script per aumentare le prestazioni
Ho tolto tantissimi if non necessari e ridotto le chiamate a funzione, spero possa essere utile a qualcuno

Codice: Seleziona tutto

///url_encode(url);
////////////////////////////////////////////////////////////////
//URL-Encodes a string according to RFC 1738
//Written by Tizzio
//http://gmc.yoyogames.com/index.php?showtopic=630240 
////////////////////////////////////////////////////////////////
var str_out = "";
var byte, char1, char2;
var len = string_length(argument0);
for (var i=1; i<=len; i++)
{
    byte = string_byte_at(argument0,i); 
    if (byte < 32 || byte > 126 || byte == 36 || byte == 38 || byte == 43 || byte == 44 || byte == 47 || byte == 58 || byte == 59 || byte == 61 || byte == 63 || byte == 64 || byte == 32 || byte == 34 || byte == 60 || byte == 62 || byte == 35 || byte == 37 || byte == 123 || byte == 125 || byte == 124 || byte == 92 || byte == 94 || byte == 126 || byte == 91 || byte == 93 || byte == 96)
    {
        char1 = floor(byte/16);
        char2 = byte - char1*16;
        
        if(char1 > 9)
            char1 = chr(65 + char1-10); 
        else
            char1 = string(char1);
        
        
        if(char2 > 9)
            char2 = chr(65 + char2-10); 
        else
            char2 = string(char2);
        
        
        str_out += "%"+char1+char2;
    }
    else
    {
        str_out += chr(byte);
    }
}
return str_out;

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti