str_replace maç sadece asliye

0 Cevap php

http://stackoverflow.com/questions/3063704/ için bir takip soru

Aşağıdaki POST verileri göz önüne alındığında:

2010-June-3
<remove>2010-June-3</remove>
2010-June-15
2010-June-16
2010-June-17
2010-June-3
2010-June-1

Ben 2010-Haziran-3 SADECE ilk örneğini kaldırmak isteyen kulüpler, ancak aşağıdaki kod tüm verileri kaldırır.

$i = 1;
$pattern = "/<remove>(.*?)<\/remove>/";
preg_match_all($pattern, $_POST['exclude'], $matches, PREG_SET_ORDER);
    if (!empty($matches)) { 
        foreach ($matches as $match) {
            // replace first instance of excluded data
            $_POST['exclude'] = str_replace($match[1], "", $_POST['exclude'], $i);  
        }
   }

echo "<br /><br />".$_POST['exclude'];

Bu Echos:

<remove></remove>
2010-June-15
2010-June-16
2010-June-17
2010-June-1

Bu yankı gerekir:

<remove>2010-June-3</remove>
2010-June-15
2010-June-16
2010-June-17
2010-June-3
2010-June-1

0 Cevap