每次出现的PHP str_replace

时间:2014-12-18 00:31:02

标签: php

我想找到:

<td>&nbsp;</td>

显示的页面上显示12x。 并用变量$ myvalue替换它,这是一个包含12个值的数组。

第一次出现:

<td>$myvalue[0]</td>

第二次发生:

<td>$myvalue[1]</td>

ETC。

我需要在某种foreach find函数中使用它,但不知道如何使用str_replace或preg_replace来解决这个问题。

有谁知道如何解决这个问题?感谢。

编辑 - &gt;我的新想法是:

$i=0;
foreach($myvalue as $value) {
str_replace('<td>$myvalue[$i]</td>',$new,$html);
$i++;
}

但我不知道如何只用str_replace替换第一次出现。

2 个答案:

答案 0 :(得分:0)

使用preg_match()并迭代匹配。

编辑:我发现PHP Live Regex是编写正则表达式的一种非常好的方式。

试试这个:

<?
$matches = preg_match_all("/<td>&nbsp;<\/td>/", $input_lines, $output_array);
?>

答案 1 :(得分:0)

$text = '<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>';
$replacements = [1,2,3,4];

while ($replacements) {
    $text = preg_replace('/&nbsp;/', array_shift($replacements), $text, 1);
}

测试通过5.4.29。 请注意,这不会检查边界条件。