从PHP中的字符串中随机替换一个数字

时间:2011-03-24 12:53:05

标签: php

我有这段代码

<?php

$source[]="clock=1,time=1,stamp=3,color=33";
$source[]="clock=2,time=1,stamp=1,color=61";

$label="clock";

$what=$label."=(\d)";
$this="clock=0";

for($i=0; $i<3; $i++)
{
$new_source=preg_replace( $what,$this,$source[$i],$count);
echo $new_source;
};

?>

我需要替换$ label = 1;或$ label = x,$ label = 0但x是可变的。

2 个答案:

答案 0 :(得分:1)

首先关闭蝙蝠,不要使用$ this。例如,将其重命名为$ replacement。 $这是PHP5中的保留变量。

接下来,pre_replace中不需要$ count。

最后,将$ what包含在分隔符中(例如/).

$new_source=preg_replace( '/'.$what.'/',$replacement,$source[$i]);

答案 1 :(得分:0)

<?php

$source[]="clock=1,time=1,stamp=3,color=33";
$source[]="clock=2,time=1,stamp=1,color=61";

$label="clock";

$what="/$label=(\d)/";
$to="clock=0";

for($i=0; $i<3; $i++)
{
$new_source=preg_replace( $what,$to,$source[$i]);
echo $new_source;
};

现在这是正确的。问题是:

  • 您使用名为$ this的变量来存储替换目标字符串,这是不正确的,因为PHP在面向对象的上下文中引用了带有变量$ this的当前对象。
  • 您将名为$ count的参数传递给preg_replace,该参数没有任何值。