Webbserverprogrammering 1

Show sourcecode

The following files exists in this folder. Click to view.

Webbsrvprg/exercises/incl/

footer.php
header.php
hejsvejs.php
kallkod.php

kallkod.php

36 lines UTF-8 Unix (LF)
<?php
// Skriver ut sidans egen kod i ett terminalfönster, som visas med [cat source] (js/terminal.js).
// Koden färgas med highlight_string, som i ramverkets source.php.
// Inkluderas före <main> i övningarna, så att koden hamnar ovanför resultatet på smala skärmar

function visaKallkod() {
    
// Sidan som visas är alltid den första filen PHP läste in
    
$fil = get_included_files()[0];
    
$kod = file_get_contents($fil);
    
$mapp = basename(dirname($fil)); // t.ex. "funktioner"

    // highlight_string skriver färgerna som style="color: ...".
    // Med CSS-variabler följer de temat (--dim finns i ovningar.css)
    
ini_set("highlight.html", "var(--dim)");
    
ini_set("highlight.comment", "var(--dim)");
    
ini_set("highlight.default", "var(--fg)");
    
ini_set("highlight.keyword", "var(--link)");
    
ini_set("highlight.string", "var(--hover)");

    
// En rad till om filen inte slutar med en radbrytning
    
$rader = substr_count($kod, "\n") + (str_ends_with($kod, "\n") ? 0 : 1);
?>
    <section class="terminal kallkod" id="kallkod" aria-label="Källkod" hidden>
        <div class="titlebar">källkod — bash</div>
        <p><span class="prompt">~/webbsrvprg/exercises/<?= $mapp ?> $</span> cat -n <?= basename($fil) ?></p>
        <div class="kod">
            <pre class="radnummer" aria-hidden="true"><?= implode("\n", range(1, $rader)) ?></pre>
            <?= highlight_string($kod, true) ?>
        </div>
        <p><span class="prompt">~/webbsrvprg/exercises/<?= $mapp ?> $</span></p>
    </section>
<?php
}

visaKallkod();