User Rating: 0 / 5

Star inactiveStar inactiveStar inactiveStar inactiveStar inactive
 

Sick and tired of generating pseudo-random numbers using the boring old PHP rand() functions? Well, today we can show you how to generate truly random numbers with Random.org! We are going to use Random.org's HTTP service and PHP's curl function to generate random numbers and more.

First off, we will use the Integer Generator to generate simple integers, and we are going to create a function to do so:

<?php
function get_random_number($min = 1, $max = 100, $num = 1) {

    $max = ((int) $max >= 1) ? (int) $max : 100;
    $min = ((int) $min < $max) ? (int) $min : 1;

    $options = array(
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HEADER => false,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_ENCODING => '',
        CURLOPT_USERAGENT => 'PHP',
        CURLOPT_AUTOREFERER => true,
        CURLOPT_CONNECTTIMEOUT => 120,
        CURLOPT_TIMEOUT => 120,
        CURLOPT_MAXREDIRS => 10,
    );

    $ch = curl_init('http://www.random.org/integers/?num='. $num .'&min='
        . $min . '&max=' . $max . '&col=1&base=10&format=plain&rnd=new');
    curl_setopt_array($ch, $options);
    $content = curl_exec($ch);
    curl_close($ch);
    return trim($content);
}

print get_random_number();
?>

 The first line starts the function, and also holds the variables $min, $max, & $num which will be the lowest and highest numbers to be called, in this case, the lowest possible number that can be called is 1, and the highest is 100 and also the amount of numbers called with $num, in this case its 1.

function get_random_number($min = 1, $max = 100, $num = 1) {

 The next two lines are checks on the $min & $max variables to make sure they are integers and to make sure $min isnt bigger than $max and they aren't negative numbers.

    $max = ((int) $max >= 1) ? (int) $max : 100;
    $min = ((int) $min < $max) ? (int) $min : 1;

 The next section of code is an array that holds the options for curl, most of which has to do with timeouts and header information:

    $options = array(
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HEADER => false,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_ENCODING => '',
        CURLOPT_USERAGENT => '%MINIFYHTML43fde44f310503890f9059a4faa691d725%%MINIFYHTML43fde44f310503890f9059a4faa691d726%',
        CURLOPT_AUTOREFERER => true,
        CURLOPT_CONNECTTIMEOUT => 120,
        CURLOPT_TIMEOUT => 120,
        CURLOPT_MAXREDIRS => 10,
    );

 The next line is the initiation of curl and sets the URL to call which also sends the information to Random.org to generate our integers:

$ch = curl_init('http://www.random.org/integers/?num='. $num .'&min='
        . $min . '&max=' . $max . '&col=1&base=10&format=plain&rnd=new');

 curl_setopt_array sets the options for the curl transfer, curl_exec executes it, and curl_close closes the curl session:

    curl_setopt_array($ch, $options);
    $content = curl_exec($ch);
    curl_close($ch);

 Trim removes any whitespaces from the beginning and end of the returned values:

    return trim($content);

 The final line prints the returned numbers by calling the function and using the print function:

print get_random_number();

Please note Random.org's Usage Guidelines, as i have updated the script to do so (minus a quota checker - which i will add later), after erik240 from reddit reminded me that i failed to do so. Source code cownloaded below has not yet been updated.

The demo can be found here.

Source code can be downloaded here.


Donate Bitcoins