65 lines
2.2 KiB
PHP
65 lines
2.2 KiB
PHP
<?php
|
|
$content = file_get_contents('api/order.php');
|
|
|
|
$tokens = token_get_all($content);
|
|
$vars = [];
|
|
$prepares = [];
|
|
for ($idx = 0; $idx < count($tokens); $idx++) {
|
|
$token = $tokens[$idx];
|
|
if (is_array($token) && $token[1] === 'prepare') {
|
|
// find the variable before ->
|
|
$var_idx = $idx - 2;
|
|
while ($var_idx >= 0 && (!is_array($tokens[$var_idx]) || $tokens[$var_idx][0] !== T_VARIABLE)) {
|
|
$var_idx--;
|
|
}
|
|
$var_name = is_array($tokens[$var_idx]) ? $tokens[$var_idx][1] : 'unknown';
|
|
|
|
$assign_var = 'unknown';
|
|
$assign_idx = $var_idx - 1;
|
|
while ($assign_idx >= 0 && $tokens[$assign_idx] !== '=') {
|
|
$assign_idx--;
|
|
}
|
|
if ($tokens[$assign_idx] === '=') {
|
|
$left_idx = $assign_idx - 1;
|
|
while ($left_idx >= 0 && (!is_array($tokens[$left_idx]) || $tokens[$left_idx][0] !== T_VARIABLE)) {
|
|
$left_idx--;
|
|
}
|
|
$assign_var = is_array($tokens[$left_idx]) ? $tokens[$left_idx][1] : 'unknown';
|
|
}
|
|
|
|
$stmt_str = "";
|
|
$j = $idx + 1;
|
|
while($j < count($tokens) && $tokens[$j] !== ';') {
|
|
$stmt_str .= is_array($tokens[$j]) ? $tokens[$j][1] : $tokens[$j];
|
|
$j++;
|
|
}
|
|
$qmarks = substr_count($stmt_str, '?');
|
|
$prepares[] = ['var' => $assign_var, 'qmarks' => $qmarks, 'str' => trim($stmt_str)];
|
|
}
|
|
}
|
|
|
|
foreach ($prepares as $p) {
|
|
echo "{$p['var']} -> {$p['qmarks']} ? \n";
|
|
}
|
|
|
|
echo "\n--- EXECUTIONS ---\\n";
|
|
for ($idx = 0; $idx < count($tokens); $idx++) {
|
|
$token = $tokens[$idx];
|
|
if (is_array($token) && $token[1] === 'execute') {
|
|
$var_idx = $idx - 2;
|
|
while ($var_idx >= 0 && (!is_array($tokens[$var_idx]) || $tokens[$var_idx][0] !== T_VARIABLE)) {
|
|
$var_idx--;
|
|
}
|
|
$var_name = is_array($tokens[$var_idx]) ? $tokens[$var_idx][1] : 'unknown';
|
|
|
|
$exec_str = "";
|
|
$j = $idx + 1;
|
|
while($j < count($tokens) && $tokens[$j] !== ';') {
|
|
$exec_str .= is_array($tokens[$j]) ? $tokens[$j][1] : $tokens[$j];
|
|
$j++;
|
|
}
|
|
echo "$var_name -> execute: " . trim($exec_str) . "\n";
|
|
}
|
|
}
|
|
|