Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
5.3.0: dl() is now disabled in some SAPIs due to stability issues. The only SAPIs that allow dl() are CLI and Embed.
10 марта, 12:11: mnemonic: Какие функции я забыл перечислить, которые принимают callback или callable?А бонус-трек ваш взят из комментария к предыдущей статье. Т.е. люди за вас подумали, а вы из этого статью сделали без указания источника? Делааа…
10 марта, 12:42: bolk: Да море их. Например, array_filter, array_reduce, array_udiff_assoc, array_udiff_uassoc, array_udiff, array_uintersect_assoc, array_uintersect_uassoc, array_uintersect, array_walk_recursive, array_walk. Это по доке в разделе «массивы» просматривал. Есть и они в других разделах, например, гляньте на libxml_set_external_entity_loader или iterator_apply. В общем, не стоит их все выписывать.
Кроме того, вы ничего не написали про autoload, про замену сериализатора на свой, про замену сессий на свои, про собственные обработчики стримов, set_exception_handler и так далее. Способов целая куча.
function a () {
global $template;
$template = "echo 'Test'; // ";
}
function b () {
a();
$x = true;
return ($x ? 'true' : 'false') . ';';
}
$template = '$tpl = ';
eval($template . b());
Да и потом, какой смысл наворачивать сложную логику подготовки кода для выполнения, если в конце концов обычная замена eval на echo распечатывает результирующий исходный код, который легко проанализировать.
Продвинутые методы неявного вызова php кода, использующиеся во вредоносных скриптах