public static function prepare($php, $tmpDir = null, $delete = true)
{
$php = "<?php {$php} ?>";
if (!ini_get('allow_url_include') || !ini_get('allow_url_fopen')) {
if (!is_string($tmpDir) || !is_dir($tmpDir)) {
$tmpDir = sys_get_temp_dir();
}
}
if (is_dir($tmpDir)) {
$fn = tempnam($tmpDir, 'lci_');
if (!$fn) {
error_log("Can not generate tmp file under {$tmpDir}!!\n");
return false;
}
if (!file_put_contents($fn, $php)) {
error_log("Can not include saved temp php code from {$fn}, you should add {$tmpDir} into open_basedir!!\n");
return false;
}
$phpfunc = (include $fn);
if ($delete) {
unlink($fn);
}
return $phpfunc;
}
return include 'data://text/plain,' . urlencode($php);
}