【发布时间】:2015-08-09 07:45:29
【问题描述】:
我正在尝试重写这个函数
<?php
$vars = array('id'=>$_SESSION['id'], 'name' => $_SESSION['username'],
'time' => $time->format('Y-m-d H:i:s');
$filename = "@name - @time";
echo preg_replace('/@(\w+)/e', '$vars["$1"]', $filename);
?>
到目前为止,这就是我得到的地方
<?php
$vars = array('id'=>$_SESSION['id'], 'name' => $_SESSION['username'],
'time' => $time->format('Y-m-d H:i:s');
$filename = "@name - @time";
echo preg_replace_callback('/@(\w+)/', function ($matches) {return '$vars["$1"]';}, $filename);
?>
但这仅向我显示 $vars["$1"] - $vars["$1"] ,所以我显然做错了什么。即使在阅读了文档之后,我也并不真正了解我在做什么。谁能帮帮我?
【问题讨论】:
-
你想要那个:
'$vars["$1"]'这被解释为字符串还是变量? (也将:'$vars["$1"]'更改为:'$vars["' . $matches[1] . ']',因为您的匹配项在$matches) -
它应该用 $vars['data'] 替换 @data 之类的东西。感谢您尝试帮助我。
标签: php