/
run.php
executable file
·70 lines (48 loc) · 1.1 KB
/
run.php
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php
require('class/Main.class.php');
Main::goCli();
$code = <<<HEREDOC
// texto de antes
<?php
\$id = 35;
\$str = "soy una cadena de texto";
\$lista = array(1,2,3);
\$objeto = new stdClass();
\$objeto->nombre = 'fulanito';
\$objeto->apellido = 'menganito';
?>
[[Blog val="soy un valor" persona=\$objeto id=\$id cadena=\$str lista=\$lista flag1 flag2 flag3]]
// texto de después
HEREDOC;
$output = '';
// var_export(TreeScript::getParse($code));
foreach(TreeScript::getParse($code) as $token) {
$data = $token['data'];
switch ($token['type']) {
case 'text':
$output .= $data;
break;
case 'tag':
$name = $token['name'];
$flags = $token['flags'];
$output .= <<<HEREDOC
<?php function ___$name(\$data, \$flag) {
print_r(\$data);
print_r(\$flag);
} ?>
HEREDOC;
$output .= "<?php ___$name(array(";
foreach ($data as $D=>$d) {
if ('$' == $d[0]) {
$output .= "'$D' => $d,";
} else {
$output .= "'$D' => \"$d\",";
}
}
$output .= "),";
$output .= var_export($flags, true);
$output .= "); ?>";
break;
}
}
file_put_contents('output.php', $output);