1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Can anyone help me convert this PHP function to Visual Basic?

Discussion in 'General Programming Chat' started by tb303, Aug 12, 2014.

Thread Status:
Not open for further replies.
  1. tb303

    tb303 Power Member

    Joined:
    Dec 18, 2011
    Messages:
    601
    Likes Received:
    280
    Not sure which forum to put this in so im sticking it here.

    currently im having to host the PHP on my server and use VB to get it via http which is a bit lame.

    can someone help out? or even give a vague idea what this function is doing so i can at least do a bit of googling.

    Code:
    // Create a url hash
        function createHash($string)
        {
            $check1 = stringToNumber($string, 0x1505, 0x21);
            $check2 = stringToNumber($string, 0, 0x1003F);
    
    
            $factor = 4;
            $halfFactor = $factor / 2;
    
    
            $check1 >>= $halfFactor;
            $check1 = (($check1 >> $factor) & 0x3FFFFC0) | ($check1 & 0x3F);
            $check1 = (($check1 >> $factor) & 0x3FFC00) | ($check1 & 0x3FF);
            $check1 = (($check1 >> $factor) & 0x3C000) | ($check1 & 0x3FFF);
    
    
            $calc1 = (((($check1 & 0x3C0) << $factor) | ($check1 & 0x3C)) << $halfFactor) | ($check2 & 0xF0F);
            $calc2 = (((($check1 & 0xFFFFC000) << $factor) | ($check1 & 0x3C00)) << 0xA) | ($check2 & 0xF0F0000);
    
    
            return ($calc1 | $calc2);
        }
    
    edit, just noticed it also uses this function
    Code:
    // Convert string to a number
        function stringToNumber($string, $check, $magic)
        {
            $int32 = 4294967296; // 2^32
            $length = strlen($string);
            for ($i = 0; $i < $length; $i++) {
                $check *= $magic;
                //If the float is beyond the boundaries of integer (usually +/- 2.15e+9 = 2^31),
                //  the result of converting to integer is undefined
                //  refer to http://www.php.net/manual/en/language.types.integer.php
                if ($check >= $int32) {
                    $check = ($check - $int32 * (int)($check / $int32));
                    //if the check less than -2^31
                    $check = ($check < -($int32 / 2)) ? ($check + $int32) : $check;
                }
                $check += ord($string{$i});
            }
            return $check;
        }
    Actually If someone can convert those two for me and save my time I can give them a couple of expired domains with mashable.com backlinks
     
    Last edited: Aug 12, 2014
  2. tb303

    tb303 Power Member

    Joined:
    Dec 18, 2011
    Messages:
    601
    Likes Received:
    280
    doesnt matter... done it myself :)
     
Thread Status:
Not open for further replies.