- var_dump: documentation ( source)
- sprintf: documentation ( source)
<?php
$input = 'tacocat';
$code = '';
var_dump((function() { return 1; })());
for ($i = 0; isset($input[$i]); $i++) {
$code .= $code ? '.' : '';
$code .= sprintf('$input[(function() use ($input) { for ($l = 0; isset($input[$l]); $l++) {} return $l - 1; })() - %u]', $i);
}
//for ($i = strlen($input) - 1; $i >= 0; $i--) {
// $code .= ($code ? '.' : '') . sprintf('$input[%s]', $i);
//}
$code = sprintf('return %s;', $code);
var_dump($code);
var_dump(eval($code));