38682-vm/parse2.php
Flatlogic Bot 4dbf9aec32 test
2026-04-03 10:38:17 +00:00

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";
}
}