$vars=[
'var1'=>100,
'var3'=>2
];
echo execute('{var1}/{var3}', $vars);
function execute($expr,$vars){
$functionname='_'.md5($expr);
if(!function_exists($functionname)){
$filename=$functionname.'.tmp.php';
if(!file_exists($filename)) {
$php_expr = preg_replace_callback('/{(.*?)}/', function ($m) use ($vars) {
if (isset($vars[$m[1]]))
return '$' . $m[1];
else
return $m[0];
}, $expr);
file_put_contents($functionname . '.tmp.php', sprintf('<' . '?php
function %s($vars){
extract($vars);
return %s;
}
', $functionname, $php_expr));
}
include_once($functionname.'.tmp.php');
}
return $functionname($vars);
}
preg_replace("/href=\"".preg_quote($url,'/')."\"/i", "href=\"$base/$url\"", $html);
$lines=file('fields.txt');
foreach($lines as line) {
... explode('|', $line);
}
<link rel="stylesheet" type="text/css" href="create_css.php">
function toRusDate($daystr=null,$format="j F, Y г."){
//print_r($datstr);
if ($daystr) $daystr=strtotime($daystr);
else $daystr=time();
return str_replace( //XXX: нужно проверить английские имена месяцев
array('january','february','march','april','may','june','july',
'august','september','october','november','december'),
array('января','февраля','марта','апреля','мая','июня','июля',
'августа','сентября','октября','ноября','декабря'),
strtolower(date($format,
$daystr)));
}
// генерируем данные
$elems = 10;
$column = 3;
$array = array();
for ($i = 1; $i <= $elems; $i++)
$array[] = $i;
// нарезка на столбики
$cols = array();
while ($column > 1 + count($cols)) {
$last = floor(count($array) / ($column - count($cols)));
list($array, $tail) = array_chunk($array, count($array) - $last);
$cols[] = $tail;
}
$cols[] = $array;
// выводим
for ($i = 0; $i < count($array); $i++) {
for ($j = $column - 1; $j >= 0; $j--) {
if (isset($cols[$j][$i])) echo $cols[$j][$i] . ' ';
}
echo "\n";
}