Housie Tickets Generator in PHP

H
Published in: PHP

This PHP script generates housie tickets using Emojis instead of numbers. Each ticket has 3 rows with 9 columns of which 4 are blanks and the rest have unique but random emoji emoticons.

The emojis are rendered using 160x160 images extracted from the Apple Emoji font and would therefore render on any browser and device.

function createTicket() {

    // There are so many Emoji emoticons
    $numbers = range(1,846);
    shuffle ( $numbers );

    // Each ticket has 3 rows and each row has 4 blank spaces
    $row = [ ["", "", "", ""], ["", "", "", ""], ["", "", "", ""] ];

    // Each row has 5 numbers (or emojis)
    for ($i=0; $i<sizeof($row); $i++) {
        for ($j=0; $j<5; $j++) {
            array_push($row[$i],$numbers[$i*5+$j]);
        }
        // Let's shuffle to maintain randomness
        shuffle($row[$i]);
    }

    $table = "";

    // The emoji images are hosted in a sub-folder
    for ($i=0; $i<sizeof($row); $i++) {
        $table .= "<tr>";
        for ($j=0; $j<9; $j++) {
            $img = $row[$i][$j] == "" ? "white.gif" : $row[$i][$j] . ".png";
            $table .= "<td width=160 height=160><img src='emoji/$img' width=160 height=160/></td>";
        }
        $table .= "</tr>";
    }

    $table = "<table cellspacing=0 cellpadding=10 border=2>$table</table>";

    return $table;
}

$html =  "";

// Generate 2x5 tickets per sheet
for ($i=0; $i<5; $i++) {
    $html .= "<tr><td>" . createTicket() . "</td><td>" . createTicket() . "</td></tr>";
}

echo "<table cellspacing=0 cellpadding=40 border=0>$html</table>";
?>
Published in: PHP

Looking for something? Find here!

Meet the Author

Web Geek, Tech Columnist
A
Amit Agarwal

Amit Agarwal is a Google Developer Expert in GSuite and Google Apps Script. He holds an engineering degree in Computer Science (I.I.T.) and is the first professional blogger in India. Read more on Lifehacker and YourStory

Get in touch