Search code examples
phprandomgeneratorimgur

Random image generator from Imgur album


I'm looking to create an Apache site using PHP so that each time a person directs to it, it will grab a random image from a previously created Imgur album full of images and display the image onload without ever leaving the website. I am thinking I would need to use the Imgur API to make this sort of thing with php but I don't know where to start. Does anybody know how I may be able to do this?

I made this javascript alternative using arrays but this only fetches images listed in the javascript code, I would like to make use of the Imgur API and automatically fetch all the images' URLs from the Imgur album and randomly pick one to display every time the user loads the webpage.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Random</title>

<script type="text/javascript">
function randomlinks(){
    var myrandom=Math.round(Math.random()*263)
    var links=new Array()
links[0]="http://i.imgur.com/blablablabla.jpg"


    window.location=links[myrandom]

}
</script>

  </head>
  <body onload="randomlinks()">

  </body>
</html>

Solution

  • This is a json returned from an album using the imgur api, you can transform this json into an array within PHP and then use array_rand() to select a random one:

    {
        "data": {
            "id": "lDRB2",
            "title": "Imgur Office",
            "description": null,
            "datetime": 1357856292,
            "cover": "24nLu",
            "account_url": "Alan",
            "account_id": 4,
            "privacy": "public",
            "layout": "blog",
            "views": 13780,
            "link": "http://alanbox.imgur.com/a/lDRB2",
            "images_count": 11,
            "images": [
                {
                    "id": "24nLu",
                    "title": null,
                    "description": null,
                    "datetime": 1357856352,
                    "type": "image/jpeg",
                    "animated": false,
                    "width": 2592,
                    "height": 1944,
                    "size": 855658,
                    "views": 135772,
                    "bandwidth": 116174397976,
                    "link": "http://i.imgur.com/24nLu.jpg"
                },
                {
                    "id": "Ziz25",
                    "title": null,
                    "description": null,
                    "datetime": 1357856394,
                    "type": "image/jpeg",
                    "animated": false,
                    "width": 2592,
                    "height": 1944,
                    "size": 919391,
                    "views": 135493,
                    "bandwidth": 124571044763,
                    "link": "http://i.imgur.com/Ziz25.jpg"
                },
                {
                    "id": "9tzW6",
                    "title": null,
                    "description": null,
                    "datetime": 1357856385,
                    "type": "image/jpeg",
                    "animated": false,
                    "width": 2592,
                    "height": 1944,
                    "size": 655028,
                    "views": 135063,
                    "bandwidth": 88470046764,
                    "link": "http://i.imgur.com/9tzW6.jpg"
                },
                {
                    "id": "dFg5u",
                    "title": null,
                    "description": null,
                    "datetime": 1357856378,
                    "type": "image/jpeg",
                    "animated": false,
                    "width": 2592,
                    "height": 1944,
                    "size": 812738,
                    "views": 134704,
                    "bandwidth": 109479059552,
                    "link": "http://i.imgur.com/dFg5u.jpg"
                },
                {
                    "id": "oknLx",
                    "title": null,
                    "description": null,
                    "datetime": 1357856338,
                    "type": "image/jpeg",
                    "animated": false,
                    "width": 1749,
                    "height": 2332,
                    "size": 717324,
                    "views": 32938,
                    "bandwidth": 23627217912,
                    "link": "http://i.imgur.com/oknLx.jpg"
                },
                {
                    "id": "OL6tC",
                    "title": null,
                    "description": null,
                    "datetime": 1357856321,
                    "type": "image/jpeg",
                    "animated": false,
                    "width": 2592,
                    "height": 1944,
                    "size": 1443262,
                    "views": 32346,
                    "bandwidth": 46683752652,
                    "link": "http://i.imgur.com/OL6tC.jpg"
                },
                {
                    "id": "cJ9cm",
                    "title": null,
                    "description": null,
                    "datetime": 1357856330,
                    "type": "image/jpeg",
                    "animated": false,
                    "width": 2592,
                    "height": 1944,
                    "size": 544702,
                    "views": 31829,
                    "bandwidth": 17337319958,
                    "link": "http://i.imgur.com/cJ9cm.jpg"
                },
                {
                    "id": "7BtPN",
                    "title": null,
                    "description": null,
                    "datetime": 1357856369,
                    "type": "image/jpeg",
                    "animated": false,
                    "width": 2592,
                    "height": 1944,
                    "size": 844863,
                    "views": 31257,
                    "bandwidth": 26407882791,
                    "link": "http://i.imgur.com/7BtPN.jpg"
                },
                {
                    "id": "42ib8",
                    "title": null,
                    "description": null,
                    "datetime": 1357856424,
                    "type": "image/jpeg",
                    "animated": false,
                    "width": 2592,
                    "height": 1944,
                    "size": 905073,
                    "views": 30945,
                    "bandwidth": 28007483985,
                    "link": "http://i.imgur.com/42ib8.jpg"
                },
                {
                    "id": "BbwIx",
                    "title": null,
                    "description": null,
                    "datetime": 1357856360,
                    "type": "image/jpeg",
                    "animated": false,
                    "width": 1749,
                    "height": 2332,
                    "size": 662413,
                    "views": 30107,
                    "bandwidth": 19943268191,
                    "link": "http://i.imgur.com/BbwIx.jpg"
                },
                {
                    "id": "x7b91",
                    "title": null,
                    "description": null,
                    "datetime": 1357856406,
                    "type": "image/jpeg",
                    "animated": false,
                    "width": 1944,
                    "height": 2592,
                    "size": 618567,
                    "views": 29259,
                    "bandwidth": 18098651853,
                    "link": "http://i.imgur.com/x7b91.jpg"
                }
            ]
        },
        "success": true,
        "status": 200
    }
    

    More information in the IMGUR API Documentation

    Being $json the string coming from imgur servers, this code will gather a random link:

    $array=json_decode($json);
    
    $links = array();
    
    foreach($array->data->images as $img)
    $links[]=$img->link;
    
    echo $links[array_rand($links)];