【发布时间】:2015-01-18 16:53:07
【问题描述】:
我的例子:
$name = "Simon";
$string = "My name is [name].";
echo preg_replace("/\[(.*)]/", ${"$1"}, $string);
// Expected: My name is Simon.
// I get: My name is .
// ${"$1"} should be $name?
exit();
当我只做:
echo preg_replace("/\[(.*)]/", "$1", $string);
// I get: My name is name.
// $1 = name
我做错了什么?为什么 PHP 不使用生成的 $name var? 这只是一个例子。我想用任何替换来解决这个问题:
[foo] --> $foo
[bar] --> $bar
...
【问题讨论】:
-
echo str_replace("[name]",$name,$string);
-
嘿 Asik,我不想使用 str_replace,因为我想用更多的变量来做。我想用任何替换来解决这个问题。
[foo] > $foo、[bar] > $bar等。我不想使用数组。 -
您是否有特殊原因要使用
preg_replace()等,而不仅仅是$string = "My name is " .$name;?如果您只想回显/填充用户名,这听起来有点矫枉过正。 -
解释不清楚。还有很多修改...?
-
为了使其工作,您需要将
[name]更改为[$name]并将${"$1"}更改为"$1"。至少,从我所能收集到的。否则,您将需要修改某些内容。如果你能忍受,那就太好了。
标签: php regex variables preg-replace preg-replace-callback