Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
<?
// helper function
function get_next_token_by_type($tokens, $i, $type)
{
do {
$i++;
} while ($tokens[$i][0] != $type);
return $tokens[$i][1];
}
function parse_file($file, $depth=1) {
$root = ".";
$source = join('', file($root."/".$file));
if (!$source) return;
$tokens = token_get_all($source);
$includes = array(); $functions = array(); $classes = array();
$blocks = 0;
foreach ($tokens as $i => $t) {
if (is_array($t)) {
// recognized token
if ($t[0] == T_REQUIRE || $t[0] == T_INCLUDE) {
// require or include => find the file to be included
$include = get_next_token_by_type($tokens, $i, T_CONSTANT_ENCAPSED_STRING);
$includes[] = substr($include, 1, -1);
} elseif ($t[0] == T_FUNCTION && !$blocks) {
// global function => find the name
$function = get_next_token_by_type($tokens, $i, T_STRING);
$functions[] = $function;
} elseif ($t[0] == T_CLASS) {
$class = get_next_token_by_type($tokens, $i, T_STRING);
$classes[] = $class;
}
} else {
if ($t == "{") {
$blocks++;
}
if ($t == "}") {
$blocks--;
}
// everything else
}
}
$return['Filename'] = $file;
if (count($functions)) $return['Functions'] = $functions;
if (count($classes)) $return['Classes'] = $classes;
if ($depth<=1) return $return;
if (!count($includes)) return $return;
$includes = array_unique($includes);
$return['Includes'] = array();
foreach ($includes as $inc) {
$return['Includes'][] = parse_file($inc, $depth-1);
}
return $return;
}
function print_tree($fi, $prefix=" ")
{
$i=0;
foreach ($fi as $title => $info) {
$i++;
echo $prefix;
if ($i==count($fi)) {
$prefix[strlen($prefix)-1] = " ";
}
if (is_array($info)) {
echo "+ <b><u>".$title."</u></b>:\n";
print_tree($info, $prefix." |");
} else {
echo "- <b>".$title."</b>: ".$info."\n";
}
}
}
$file_info = parse_file("index.php", 5);
echo "<pre>";
print_tree($file_info);
echo "</pre>";
?>