summaryrefslogtreecommitdiff
path: root/common.php
blob: cba823a3fe44b536cd605739c2421f4bff00d39d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php

define("SRCDIR", realpath(__DIR__ . "/src/"));

function hzcom_expand(string $pageContents): string {
    $params = [];
    $page = SRCDIR . "/pages/" . bin2hex(random_bytes(8)) . ".tmp";
    file_put_contents($page, preg_replace_callback(
        "/<param:(?'paramName'[a-z][a-z0-9_-]*?)\s*>" .
            "(?'paramValue'.*?)<\/param:\\1\s*>/s",
        function(array $matches) use (&$params) {
            $params[$matches['paramName']] = $matches['paramValue'];
            return "";
        },
        $pageContents
    ));
    unset($pageContents);

    ob_start();
    include SRCDIR . "/template.php";
    $output = ob_get_clean();
    if ($output === false)
        $output = "";

    if (is_file($page))
        unlink($page);

    return $output;
}