Källkod
Välj en PHP-fil för att visa dess källkod.
- exercises.php
- exercises/extra_ovning.php
- exercises/hej_svejs.php
- exercises/index.php
- exercises/inkludera_1.php
- exercises/inkludera_2_sida1.php
- exercises/inkludera_2_sida2.php
- exercises/inkludera_2_sida3.php
- exercises/ovn_funk1.php
- exercises/ovn_funk2.php
- exercises/ovn_funk3.php
- exercises/ovn_funk4.php
- exercises/ovn_funk5.php
- exercises/ovn_funk6.php
- exercises/ovn_funk7.php
- exercises/ovn_funk8.php
- exercises/ovn_funk9.php
- exercises/ovn_gr1.php
- exercises/ovn_gr2.php
- exercises/ovn_gr3.php
- exercises/ovn_gr4.php
- exercises/ovn_gr5.php
- exercises/ovn_gr6.php
- exercises/ovn_gr7.php
- exercises/uppg3.php
- exercises/uppg5.php
- incl/config.php
- incl/footer.php
- incl/header.php
- index.php
- source.php
- viewsource.php
source.php
<?php
/** Hämtar PHP-filer i projektet så att de kan visas i viewsource.php. */
function getProjectPhpFiles($projectRoot)
{
$files = [];
$iterator = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($projectRoot, FilesystemIterator::SKIP_DOTS)
);
foreach ($iterator as $file) {
if (!$file->isFile() || strtolower($file->getExtension()) !== 'php') {
continue;
}
$relativePath = substr($file->getPathname(), strlen($projectRoot) + 1);
$files[] = str_replace(DIRECTORY_SEPARATOR, '/', $relativePath);
}
sort($files, SORT_NATURAL | SORT_FLAG_CASE);
return $files;
}
/** Returnerar bara PHP-filer som faktiskt ligger i projektmappen. */
function getSafeProjectPhpPath($projectRoot, $relativePath)
{
$root = realpath($projectRoot);
$candidate = realpath($root . DIRECTORY_SEPARATOR . str_replace(['/', '\\'], DIRECTORY_SEPARATOR, $relativePath));
if ($candidate === false
|| strpos($candidate, $root . DIRECTORY_SEPARATOR) !== 0
|| !is_file($candidate)
|| strtolower(pathinfo($candidate, PATHINFO_EXTENSION)) !== 'php') {
return false;
}
return $candidate;
}