- var_dump: documentation ( source)
- preg_replace_callback: documentation ( source)
- preg_match: documentation ( source)
- preg_replace: documentation ( source)
<?php
class x
{
public $a = [
'~.~e' => '$this->waa($0);'
];
function p($s)
{
foreach($this->a as $p => $r)
{
// support deprecated PREG_REPLACE_EVAL
if (preg_match('~^(.*)([/\~])([imsxADSUXJu]*)e([imsxADSUXJu]*)$~s', $p, $m))
{
$s = preg_replace_callback($m[1].$m[2].$m[3].$m[4], function($m) use ($s, $r){
return eval('return '. preg_replace_callback('~\$(\d)~', function($i) use($m){ return $m[ $i[1] ];}, $r).';');
}, $s);
} else
$string = preg_replace($p, $r, $s);
}
return $s;
}
function waa($t){ return '*'.$t.'*'; }
}
var_dump((new x)->p('wazup'));